Estructuras built-in de Python más allá de listas: tuplas y named tuples, stacks/colas con deque, diccionarios y defaultdict, sets, y *args/**kwargs. Elegir la estructura eficiente (P1 de la I1).
Un defaultdict asigna un valor por defecto (dado por un callable sin argumentos) cuando consultas una llave que no existe, evitando manejar KeyError a mano:
from collections import defaultdict conteo = defaultdict(int) # default: int() -> 0for letra in 'banana': conteo[letra] += 1 # no lanza KeyError aunque la letra no exista aunprint(dict(conteo)) # {'b': 1, 'a': 3, 'n': 2} crea un diccionario vacío, no un set. Para un set vacío usa set(). Un set con elementos sí usa llaves: 1, 2, 3.