如何用Pythonic的方式将两个序列组合成一个字典?

11 浏览
0 Comments

如何用Pythonic的方式将两个序列组合成一个字典?

在Python中有一种更简明的方法吗?:

def toDict(keys, values):
  d = dict()
  for k,v in zip(keys, values):
    d[k] = v
  return d

admin 更改状态以发布 2023年5月21日
0
0 Comments

如果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()函数不同,返回的是迭代器,而不是列表。

0
0 Comments

是的:

dict(zip(keys,values))

0