Dans de nombreux cas, cela peut être un problème XY . Pourquoi indexez-vous vos clés de dictionnaire par position? En avez-vous vraiment besoin? Jusqu'à récemment, les dictionnaires n'étaient même pas classés en Python, donc l'accès au premier élément était 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 mal non plus. Au début, j'allais le remplacer par le monstrueux
k = next(itertools.islice(iter(keys), i, None))
avant de réaliser que tout cela est bien mieux écrit comme
for (k, res) in zip(d.keys(), some_list):
qui fonctionne très bien.
Je pense que dans de nombreux autres cas, l'indexation des clés du dictionnaire par position peut être évitée. Bien que les dictionnaires soient ordonnés dans Python 3.7, s'en remettre à cela n'est pas joli. Le code ci-dessus ne fonctionne que parce que le contenu de some_list
a été récemment produit à partir du contenu de d
.
Jetez un œil à votre code si vous avez vraiment besoin d'accéder à un disk_keys
élément par index. Vous n'en avez peut-être pas besoin.
dict.keys()
renvoie un ensemble comme un objet de vue, pas une liste (donc, l'indexation n'est pas possible). Utilisationkeys = list(test)