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