关于python:将两个序列组合成字典的python方法是什么?

What's the Pythonic way to combine two sequences into a dictionary?

在python中是否有更简洁的方法可以做到这一点?:

1
2
3
4
5
6
def toDict(keys, values):
  d = dict()
  for k,v in zip(keys, values):
    d[k] = v

  return d


是的:

1
dict(zip(keys,values))


如果keys大小可能是一个更大的,然后你可以使用valuesitertools.izip_longest(Python 2.6),允许到指定的默认值是:the Rest of the keys

1
2
3
4
from itertools import izip_longest

def to_dict(keys, values, default=None):
    return dict(izip_longest(keys, values, fillvalue=default))

例子:

1
2
>>> to_dict("abcdef", range(3), 10)
{'a': 0, 'c': 2, 'b': 1, 'e': 10, 'd': 10, 'f': 10}

注意:函数的函数的不同的itertools.izip*()zip()返回迭代器不列表。