次の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