If the keys can be larger than values ', then you can use itertools.izip_longest (Python 2.6), which allows you to specify a default value for the rest of the keys:
from itertools import izip_longest def to_dict(keys, values, default=None): return dict(izip_longest(keys, values, fillvalue=default))
Example:
>>> to_dict("abcdef", range(3), 10) {'a': 0, 'c': 2, 'b': 1, 'e': 10, 'd': 10, 'f': 10}
NOTE: itertools.izip*() functions, unlike the zip() function, return iterators that do not contain lists.
jfs
source share