Wenn keys
eine 'Größe dann values
größer sein kann', dann könnten Sie itertools.izip_longest
(Python 2.6), die einen Standardwert für den Rest der Tasten angeben kann:
from itertools import izip_longest
def to_dict(keys, values, default=None):
return dict(izip_longest(keys, values, fillvalue=default))
Beispiel:
>>> to_dict("abcdef", range(3), 10)
{'a': 0, 'c': 2, 'b': 1, 'e': 10, 'd': 10, 'f': 10}
HINWEIS: itertools.izip*()
Funktionen im Gegensatz zu der zip()
Funktion Rückkehr Iteratoren keiner Listen.
Zusammen mit den richtigen Antworten, die Sie bisher für die Technik hatten, werde ich darauf hinweisen, dass 'to_dict' bei der Benennung einer Funktion mehr Pythonic als 'toDict' ist. Siehe [PEP 8] (http://www.python.org/dev/peps/pep-0008 "PEP 8") für die Stilempfehlungen zum Schreiben von Python-Code. – bignose
+1 für jemanden zu helfen, der eindeutig "den Weg" interessiert. – physicsmichael
Danke für das Heads-up. Dies würde jedoch eher in einer wikifizierten Frage nach dem Vorbild von "Python-Coding Style Guidelines" liegen. – guillermooo