如何从几个相同大小的元组创建一个字典?

时间:2012-04-16 18:41:39

标签: python dictionary constructor

考虑我有以下两个元组:

keys=("second", "minute", "hour", "day")
values=(1, 60, 60, 24)

我想创建一个字典,其中keys元组为键,values元组为值。这是我天真的做法:

d={}
for i in xrange(len(keys)):
    d[keys[i]] = values[i]

这样做是否更容易更优雅?

我主要使用Python2.7,所以我更喜欢这个版本的特权答案。

2 个答案:

答案 0 :(得分:8)

>>> keys=("second", "minute", "hour", "day")
>>> values=(1, 60, 60, 24)
>>> dict(zip(keys,values))
{'second': 1, 'hour': 60, 'minute': 60, 'day': 24}

答案 1 :(得分:7)

zip函数将一对迭代变为对列表。 dict构造函数接受多种形式的参数,其中一种是(键,值)对的序列。把两者放在一起,你得到你想要的东西:

dict(zip(keys, values))