In vielen Fällen kann dies ein XY-Problem sein . Warum indizieren Sie Ihre Wörterbuchschlüssel nach Position? Müssen Sie wirklich? Bis vor kurzem wurden Wörterbücher nicht einmal in Python bestellt, sodass der Zugriff auf das erste Element willkürlich war.
Ich habe gerade Python 2-Code in Python 3 übersetzt:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
Das ist nicht schön, aber auch nicht sehr schlecht. Zuerst wollte ich es durch das Ungeheuerliche ersetzen
k = next(itertools.islice(iter(keys), i, None))
bevor mir klar wurde, ist das alles viel besser geschrieben als
for (k, res) in zip(d.keys(), some_list):
das funktioniert gut.
Ich glaube, dass in vielen anderen Fällen die Indizierung von Wörterbuchschlüsseln nach Position vermieden werden kann. Obwohl Wörterbücher in Python 3.7 bestellt werden, ist es nicht schön, sich darauf zu verlassen. Der obige Code funktioniert nur, weil der Inhalt vonsome_list
kürzlich aus dem Inhalt von erstellt wurde d
.
Sehen Sie sich Ihren Code genau an, wenn Sie wirklich über einen disk_keys
Index auf ein Element zugreifen müssen . Vielleicht musst du nicht.
dict.keys()
ein Satz wie ein Ansichtsobjekt zurückgegeben, keine Liste (eine Indizierung ist daher nicht möglich). Verwenden Siekeys = list(test)