Если размер keys
'может быть больше, чем values
', то вы можете использовать itertools.izip_longest
(Python 2.6), который позволяет указать значение по умолчанию для остальных ключей:
from itertools import izip_longest
def to_dict(keys, values, default=None):
return dict(izip_longest(keys, values, fillvalue=default))
Пример:
>>> to_dict("abcdef", range(3), 10)
{'a': 0, 'c': 2, 'b': 1, 'e': 10, 'd': 10, 'f': 10}
ПРИМЕЧАНИЕ: функции itertools.izip*()
в отличие от функции zip()
возвращают итераторы, а не списки.