我有以下 python 代码:
print {a:b for a in [1, 2] for b in [3, 4, 5]}
我希望给我这样的东西:
{1:3, 1:4, 1:5, 2:3, 2:4, 2:5}
但它却给了我这个:
{1: 5, 2: 5}
我也尝试过像 suggested here 这样的循环反转:
print {a:b for b in [3, 4, 5] for a in [1, 2]}
但它仍然给我错误的答案。 我也在这样的列表中尝试了相同的理解:
print [(a, b) for a in [1, 2] for b in [3, 4, 5]]
这完全符合预期。
关于字典,我错过了什么?
仅供引用,python
命令返回:
Python 2.7.4 (default, Apr 19 2013, 18:32:33)
[GCC 4.7.3] on linux2
最佳答案
字典有唯一的键。您不能将键 1
(例如)映射到多个值。
如果您需要针对一个键存储多个值,请存储一个值列表而不是单个值。
关于python - 嵌套循环的字典理解没有按计划工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18792192/