Bucles for sobre iterables: el modelo correcto
El for de Python itera sobre cualquier objeto iterable, no sobre índices. Patrones con enumerate(), zip() y generadores.
El for de Python itera sobre cualquier objeto iterable, no sobre índices. Patrones con enumerate(), zip() y generadores.
El match de Python no es un switch: es deconstrucción estructural. Patrones de secuencia, mapping, clase y guards con casos de uso reales.
Condiciones con truthiness, condiciones compuestas con and/or/not, elif como alternativa a else/if anidado y la sintaxis del operador ternario.
Diferencias de memoria y uso entre generator expressions y list comprehensions en Python, cuándo elegir cada una y la limitación del recorrido único.
Sintaxis completa, comprehensions anidadas, dict y set comprehensions, y cuándo preferir un bucle for convencional.
Colecciones únicas respaldadas por hash table: operadores de conjunto, mutación segura con discard, búsquedas O(1) y frozenset como versión hashable.
Cómo CPython implementa dicts con dos arrays separados, por qué eso garantiza orden de inserción, y qué contratos debe cumplir una clave hashable.
Cómo funciona la hash table detrás de los dicts, por qué el orden está garantizado desde Python 3.7, y cómo usar métodos clave y comprehensions.
Tuple representa un registro con campos posicionales fijos; list, una colección homogénea variable. Conocer esa diferencia semántica cambia cómo diseñas estructuras de datos en Python.
Cómo funciona lista[inicio:fin:paso] internamente, asignación a slices, el objeto slice explícito y __getitem__ con slices en clases propias.