有两个不同大小的列表:
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))
虽然这是一个比列表理解更简单的语法,但我用过,我想知道执行哪个会更快?
答案 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就会停止,这就是你想要的。