我在Python2.7
和Python 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}
两个版本都提出了一个ValueError
来表示ValueError: need more than 1 value to unpack
。
在Python3中,最简单/最直接的方法是什么?
上面说得很好-如果你这样做的话,你可以在Python3中放置物品:
这也提供了使用条件的能力
享受吧!
字典理解是指通过某种逻辑在字典中生成项:
在字典上循环只产生键。使用
d.items()
循环键和值:您看到的
ValueError
异常是不是一个dict理解问题,也不限于Python 3;您将在Python 2或常规的for
循环中看到相同的问题:因为每次迭代只产生一个项。
如果没有转换,
{k: v for k, v in d.items()}
只是一个冗长而昂贵的d.copy()
;只有在对键或值做更多的处理,或者使用条件或更复杂的循环构造时,才使用dict理解。相关问题 更多 >
编程相关推荐