Python 2 と Python 3 の両方で機能する辞書の値/項目を効率的に反復処理する方法はありますか?
Python 2では、次のように書くことができます
for x in mydict:
for x in mydict.iterkeys():
for x in mydict.viewkeys():
for x in mydict.itervalues():
for x in mydict.viewvalues():
for x in mydict.iteritems():
for x in mydict.viewitems():
Python 3 では、次の可能性があります。
for x in mydict:
for x in mydict.keys():
for x in mydict.values():
for x in mydict.items():
でキーを反復処理できますfor x in mydict
。これは Python 2 と 3 の両方で機能します。しかし、普遍的に機能する値とキーと値のペア (「アイテム」) を反復処理する方法はありますか? 両方のバージョンの Python で実行できる Python コードを作成するために必要です。
(ちなみに、イテレータを使用したその他の障害は簡単に回避できます。たとえば、次のようになります。
if sys.version_info.major<3:
from itertools import izip as zip, imap as map
map
ただし、辞書メソッドはやのように簡単に再定義することはできませんzip
。)
何か案は?