gpt4 book ai didi

Python 2.6 字典生成器符号

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:53 33 4
gpt4 key购买 nike

我有 2 个列表 'a','b','c'1,2,3 我将它们压缩在一起得到一个字典 {'a':1, 'b':2, 'c':3}。我在 Python 2.7 上成功执行了以下操作:

fields = ['a', 'b', 'c']
values = [1, 2, 3]
record = {key:value for key,value in zip(fields, values)}

但是在 Python 2.6.6 上,它在第 3 行的 for 处给我语法错误。

Python 2.6.6 是否不支持 dictionary-builder 符号?

如果是这样,实现字典 {'a':1, 'b':2, 'c':3} 的替代方法是什么?

最佳答案

您正在尝试做的是词典理解,这在您的 python 版本中不可用。

你可以从(键,值)元组生成你的字典:

>>> dict((key,value) for key,value in zip(fields,values))
{'a': 1, 'c': 3, 'b': 2}

编辑

@PeterWood 的精彩评论:

使用 dict(zip(fields, values))。这更短更快。

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

使用 itertools.izip,您将获得另一个性能提升:

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

关于Python 2.6 字典生成器符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35084237/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com