1

我有以下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}

我也尝试过像这里建议的那样反转循环:

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
4

2 回答 2

5

字典有唯一的键。您不能将键1(例如)映射到多个值。

如果您需要针对一个键存储多个值,请存储一个值列表而不是单个值。

于 2013-09-13T17:41:55.163 回答
2

我对字典缺少什么?

钥匙是独一无二的。您可以在此处阅读文档中的字典:http:
//docs.python.org/2/library/stdtypes.html#mapping-types-dict

于 2013-09-13T17:41:43.333 回答