如何从两个列表构建字典

时间:2014-09-18 20:00:28

标签: python

有两个不同大小的列表:

numbers=[1,2,3,4,5]
cities=['LA','NY','SF']

我需要得到这个:

result={1:'LA', 2:'NY', 3:'SF'}

我想过这样做:

result={number:cities[numbers.index(number)] for number in numbers if numbers.index(number)<len(cities)}

但是这个单线程有点长。我想知道是否有另一种实现同一目标的方法。

以后编辑:

有多个使用zip的建议:

dict(zip(cities, numbers))

虽然这是一个比列表理解更简单的语法,但我用过,我想知道执行哪个会更快?

3 个答案:

答案 0 :(得分:3)

使用zip,它只会压缩到最短序列的末尾

dict(zip(cities, numbers))

答案 1 :(得分:1)

numbers=[1,2,3,4,5]
cities=['LA','NY','SF']
dict(zip(cities,numbers))

我怀疑它是重复的 - 在发布之前搜索

答案 2 :(得分:1)

最简单的可能是dict(zip(numbers,cities)) 一旦任何列表结束,zip就会停止,这就是你想要的。

相关问题