在Python中有更简洁的方法吗?:
def toDict(keys, values):
d = dict()
for k,v in zip(keys, values):
d[k] = v
return d
答案 0 :(得分:42)
是:
dict(zip(keys,values))
答案 1 :(得分:4)
如果keys
'的大小可能大于values
',那么您可以使用itertools.izip_longest
(Python 2.6),它允许为其余键指定默认值:< / p>
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()
函数返回迭代器而不是列表。