10

次の効果を生成したい:

for i, j in d.items() and k, v in c.items():
    print i, j, k, v

これは間違っています。どうすればこれを達成できるか知りたいですか?

4

2 に答える 2

19
for (i, j), (k, v) in zip(d.items(), c.items()):
   print i, j, k, v

OrderedDict辞書がsでない限り、順序は任意であることを忘れないでください。メモリ効率を高める

Python 2.x (wheredict.itemsおよびzipcreate リスト) では、次のことができます。

from itertools import izip
for (i, j), (k, v) in izip(d.iteritems(), c.iteritems()):
   print i, j, k, v

小さなリストでは、これらの中間リストを反復する方が高速であることがわかりますが、非常に大きなデータ構造を反復すると速度が向上することに気付くため、これは必ずしも高速ではありません。

Python 3.x では(これはもう存在しません) とzip同じであり、 (もう存在しません) はlistではなくビューを返します。izipdict.itemsdict.iteritems

于 2013-06-14T04:15:06.017 に答える