En muchos casos, esto puede ser un problema XY . ¿Por qué indexa las teclas de su diccionario por posición? ¿Realmente lo necesitas? Hasta hace poco, los diccionarios ni siquiera se ordenaban en Python, por lo que acceder al primer elemento era arbitrario.
Acabo de traducir un código de Python 2 a Python 3:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
lo cual no es bonito, pero tampoco está muy mal. Al principio, estaba a punto de reemplazarlo por lo monstruoso
k = next(itertools.islice(iter(keys), i, None))
antes de darme cuenta de que todo esto está mucho mejor escrito como
for (k, res) in zip(d.keys(), some_list):
que funciona bien
Creo que en muchos otros casos, se puede evitar indexar las claves del diccionario por posición. Aunque los diccionarios están ordenados en Python 3.7, confiar en eso no es bonito. El código anterior solo funciona porque el contenido de some_list
ha sido producido recientemente a partir del contenido de d
.
Observe detenidamente su código si realmente necesita acceder a un disk_keys
elemento por índice. Quizás no necesites hacerlo.
dict.keys()
devuelve un conjunto como objeto de vista, no lista (por lo tanto, la indexación no es posible). Usokeys = list(test)