多くの場合、これはXY 問題である可能性があります。辞書のキーを位置でインデックス付けするのはなぜですか? 本当に必要ですか?最近まで、辞書は Python で順序付けさえされていなかったため、最初の要素へのアクセスは任意でした。
Python 2 コードの一部を Python 3 に翻訳しました。
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
これはきれいではありませんが、それほど悪くもありません。最初は、怪物に置き換えようとしていました
k = next(itertools.islice(iter(keys), i, None))
これが次のように書かれた方がはるかに優れていることに気付く前に
for (k, res) in zip(d.keys(), some_list):
これは問題なく動作します。
他の多くの場合、位置による辞書キーのインデックス付けは回避できると思います。辞書は Python 3.7 で順序付けされていますが、それに依存するのは適切ではありません。上記のコードは、 のコンテンツがsome_list
のコンテンツから最近生成されたためにのみ機能しd
ます。
disk_keys
要素にインデックスでアクセスする必要がある場合は、コードをよく見てください。おそらく、その必要はありません。