Em muitos casos, isso pode ser um problema XY . Por que você está indexando as chaves do seu dicionário por posição? Você realmente precisa? Até recentemente, os dicionários nem sequer eram ordenados em Python, portanto, acessar o primeiro elemento era arbitrário.
Acabei de traduzir um código Python 2 para Python 3:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
o que não é bonito, mas também não é muito ruim. No começo, eu estava prestes a substituí-lo pela monstruosa
k = next(itertools.islice(iter(keys), i, None))
antes que eu percebesse isso tudo é muito melhor escrito como
for (k, res) in zip(d.keys(), some_list):
o que funciona muito bem.
Acredito que em muitos outros casos, a indexação das chaves do dicionário por posição pode ser evitada. Embora os dicionários sejam ordenados no Python 3.7, confiar nisso não é bonito. O código acima funciona apenas porque o conteúdo desome_list
foi produzido recentemente a partir do conteúdo de d
.
Dê uma olhada no seu código, se você realmente precisar acessar um disk_keys
elemento pelo índice. Talvez você não precise.
dict.keys()
retorna um conjunto como objeto de visualização, não lista (portanto, a indexação não é possível). Usekeys = list(test)