gpt4 book ai didi

python - Python 3 中的字典理解

转载 作者:IT老高 更新时间:2023-10-28 22:21:01 25 4
gpt4 key购买 nike

我在 Python2.7Python 3+ 中发现了以下有关 dict 理解的堆栈溢出帖子:Create a dictionary with list comprehension in 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}

两个版本都会引发 ValueErrorValueError: need more than 1 value to unpack

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

最佳答案

遍历字典只会产生。使用 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 推导式。

关于python - Python 3 中的字典理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20489609/

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