Dictionary Comprehension in Python 3
我在
1 | d = {key: value for (key, value) in sequence} |
我在python 3中尝试过。然而,它引发了一个例外。
1 2 3 | d = {'a':1, 'b':2, 'c':3, 'd':4} {key : value for (key, value) in d} {key : value for key, value in d} |
两个版本都提出了一个
在python3中,最简单/最直接的理解词典的方法是什么?
循环查找字典只会生成键。使用
1 | {key: value for key, value in d.items()} |
您看到的
1 2 3 4 5 6 7 | >>> 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 |
因为每次迭代都只生成一个项。
如果不进行转换,
上面说得很好-如果你这样做,你可以在python3中放置物品:
{key: d[key] for key in d}
1 2 3 4 | d = {'a':1, 'b':2, 'c':3, 'd':4} z = {x: d[x] for x in d} z >>>{'a': 1, 'b': 2, 'c': 3, 'd': 4} |
这也提供了使用条件的能力
1 2 3 | y = {x: d[x] for x in d if d[x] > 1} y >>>{'b': 2, 'c': 3, 'd': 4} |
享受!
字典理解是指通过某种逻辑在字典中生成项:
1 2 3 4 5 6 7 | x = {p: p*p for p in range(10)} print(x) y = {q: q*3 for q in range(5,15) if q%2!=0} print(y) |