In molti casi, questo potrebbe essere un problema XY . Perché stai indicizzando le chiavi del tuo dizionario in base alla posizione? Ne hai davvero bisogno? Fino a poco tempo fa, i dizionari non erano nemmeno ordinati in Python, quindi l'accesso al primo elemento era arbitrario.
Ho appena tradotto del codice Python 2 in Python 3:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
che non è carino, ma neanche molto male. All'inizio, stavo per sostituirlo con il mostruoso
k = next(itertools.islice(iter(keys), i, None))
prima ho capito che è tutto molto meglio scritto come
for (k, res) in zip(d.keys(), some_list):
che funziona bene.
Credo che in molti altri casi si possa evitare di indicizzare le chiavi del dizionario per posizione. Sebbene i dizionari siano ordinati in Python 3.7, basarsi su quello non è carino. Il codice sopra funziona solo perché il contenuto di è some_list
stato recentemente prodotto dal contenuto di d
.
Dai un'occhiata al tuo codice se hai davvero bisogno di accedere a un disk_keys
elemento per indice. Forse non è necessario.
dict.keys()
restituisce un set come oggetto vista, non elenco (quindi l'indicizzazione non è possibile). Usakeys = list(test)