Dans de nombreux cas, il peut s'agir d'un Problème XY . Pourquoi indexez-vous les clés de votre dictionnaire par position ? En avez-vous vraiment besoin ? Jusqu'à récemment, les dictionnaires n'étaient même pas ordonnés en Python, et l'accès au premier élément était donc arbitraire.
Je viens de traduire du code Python 2 en Python 3 :
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
ce qui n'est pas joli, mais pas très mauvais non plus. Au départ, j'étais sur le point de le remplacer par le monstrueux
k = next(itertools.islice(iter(keys), i, None))
avant que je ne réalise que tout ceci est bien mieux écrit sous la forme de
for (k, res) in zip(d.keys(), some_list):
ce qui fonctionne très bien.
Je pense que dans de nombreux autres cas, l'indexation des clés de dictionnaire par position peut être évitée. Bien que les dictionnaires soient ordonnés dans Python 3.7, se fier à cela n'est pas très joli. Le code ci-dessus ne fonctionne que parce que le contenu de some_list
avait été récemment produit à partir du contenu de d
.
Examinez attentivement votre code si vous avez réellement besoin d'accéder à un fichier disk_keys
élément par indice. Peut-être n'en avez-vous pas besoin.