Python字典,列表作为键,元组作为值

问题描述

| 我有一个列表,希望用作字典的键,还有一个带值的元组列表。考虑以下:
d = {}
l = [\'a\',\'b\',\'c\',\'d\',\'e\']
t = [(1,2,3,4),(7,8,9,10),(4,5,6,7),(9,8),4,1,2)]

for i in range(len(l)):
    d[l[i]] = t[i]
该列表将始终是5个值,并且将始终有5个元组,但是每个元组中都有成千上万个值。 我的问题是:用t中的元组,键是l中的值来填充字典d的最快方法是什么?     

解决方法

        我没有时间,但可能
d = dict(zip(l,t))
会很好。对于仅5个键值对,我认为
izip()
不会比
zip()
提供任何优势。每个元组都有很多项的事实对于此操作无关紧要,因为无论您的方法还是我的方法,都不会在任何时候复制元组对象。仅指向元组对象的指针被插入到字典中。     ,        要基于Sven的答案,如果需要创建更大的格言,使用
itertools.izip
会更快并且使用更少的内存。仅使用五个键/值对,构建字典的时间将很小。
python -m timeit -s \"l = l2 = range(100000)\" \"dict(zip(l,l2))\" 
1000 loops,best of 3: 20.1 msec per loop
python -m timeit -s \"import itertools; l = l2 = range(100000)\" \"dict(itertools.izip(l,l2))\"
1000 loops,best of 3: 9.59 msec per loop
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...