如何用Pythonic的方式将两个序列组合成一个字典?
如何用Pythonic的方式将两个序列组合成一个字典?
在Python中有一种更简明的方法吗?:
def toDict(keys, values): d = dict() for k,v in zip(keys, values): d[k] = v return d
admin 更改状态以发布 2023年5月21日
如果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()
函数不同,返回的是迭代器,而不是列表。