tuplas - metodos de listas en python
¿Cuál es la manera Pythonic de combinar dos secuencias en un diccionario? (2)
¿Hay alguna forma más concisa de hacer esto en Python ?:
def toDict(keys, values):
d = dict()
for k,v in zip(keys, values):
d[k] = v
return d
Sí:
dict(zip(keys,values))
Si el tamaño de las keys
puede ser mayor que el de los values
uno, podría usar itertools.izip_longest
(Python 2.6) que permite especificar un valor predeterminado para el resto de las claves:
from itertools import izip_longest
def to_dict(keys, values, default=None):
return dict(izip_longest(keys, values, fillvalue=default))
Ejemplo:
>>> to_dict("abcdef", range(3), 10)
{''a'': 0, ''c'': 2, ''b'': 1, ''e'': 10, ''d'': 10, ''f'': 10}
NOTA: itertools.izip*()
funciona a diferencia de la función zip()
devuelve iteradores no listas.