Python 2.6 dictionary builder notation
我有两个单子
1 2 3 | fields = ['a', 'b', 'c'] values = [1, 2, 3] record = {key:value for key,value in zip(fields, values)} |
但在python 2.6.6中,它在第3行的
是不是python 2.6.6不支持字典生成器表示法?
如果是这样,那么有效地实现dict
您要做的是对字典的理解,这在您的Python版本中是不可用的。
您可以从(key,value)元组生成dict:
1 2 | >>> dict((key,value) for key,value in zip(fields,values)) {'a': 1, 'c': 3, 'b': 2} |
编辑
@peterwood的精彩评论:
使用
1 2 3 4 | In [15]: timeit dict((key,value) for key,value in zip(range(1000),range(1000))) 1000 loops, best of 3: 317 μs per loop In [16]: timeit dict(zip(range(1000), range(1000))) 10000 loops, best of 3: 138 μs per loop |
号
使用
1 2 3 4 | In [25]: timeit dict((key,value) for key,value in izip(range(1000),range(1000))) 1000 loops, best of 3: 286 μs per loop In [24]: timeit dict(izip(range(1000), range(1000))) 10000 loops, best of 3: 78.6 μs per loop |