Python 3中的字典理解

乔恩

我在Python2.7和中找到了以下有关dict理解的堆栈溢出文章Python 3+在Python中用列表理解创建字典,说明我可以像这样应用字典理解:

d = {key: value for (key, value) in sequence}

我在Python 3中尝试过。但是,它引发了一个异常。

d = {'a':1, 'b':2, 'c':3, 'd':4}
{key : value for (key, value) in d}
{key : value for key, value in d}

两种版本都提出了ValueError这样的说法ValueError: need more than 1 value to unpack

在Python3中进行字典理解的最简单/最直接的方法是什么?

马丁·彼得斯(Martijn Pieters)

遍历字典只会产生使用d.items()循环遍历键和值:

{key: value for key, value in d.items()}

ValueError您看到异常不是dict理解问题,也不限于Python 3。您会在Python 2或常规for循环中看到相同的问题

>>> d = {'a':1, 'b':2, 'c':3, 'd':4}
>>> for key, value in d:
...     print key, value
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack

因为每次迭代仅产生一项

如果不进行转换,{k: v for k, v in d.items()}则只是冗长而昂贵的d.copy()仅当您对键或值进行更多操作,使用条件或更复杂的循环构造时,才使用dict理解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中的字典理解

来自分类Dev

字典中的Python列表理解

来自分类Dev

Python3字典理解

来自分类Dev

python中的字典理解太全面

来自分类Dev

python中的字典理解太全面了

来自分类Dev

Python 3:使用 if else 进行字典理解并附加到列表中

来自分类Dev

在python中,“ if-else and for”如何在字典理解中工作

来自分类Dev

Python 3字典理解执行错误

来自分类Dev

嵌套字典理解python

来自分类Dev

嵌套的Python字典理解

来自分类Dev

字典的python理解循环

来自分类Dev

如何以正确的顺序在Python中构造嵌套字典理解?

来自分类Dev

Python-OrderedDict中的字典理解不起作用

来自分类Dev

python中具有理解力的字典列表

来自分类Dev

带有值列表的Python中的嵌套字典理解

来自分类Dev

如何以正确的顺序在Python中构造嵌套字典理解?

来自分类Dev

列出为字典理解中每个键的值-Python

来自分类Dev

字典中的频率计数——Python 使用理解

来自分类Dev

使用math.isclose比较python中的字典,如何在字典理解中实现

来自分类Dev

列表理解中的 Python 3 无效语法

来自分类Dev

理解python中的打印格式%.3

来自分类Dev

在python 3中从csv文件创建字典

来自分类Dev

在python 3中创建嵌套字典

来自分类Dev

字典在python 3中不可排序?

来自分类Dev

字典python 3中的数据插值

来自分类Dev

在python 3中创建嵌套字典

来自分类Dev

Python 3中字典的映射长度

来自分类Dev

替换字典中的字符 - Python 3

来自分类Dev

在 Python 3 中打印字典