Dalam banyak kasus, ini mungkin merupakan Masalah XY . Mengapa Anda mengindeks kunci kamus Anda berdasarkan posisi? Apakah Anda benar-benar perlu? Sampai baru-baru ini, kamus bahkan tidak dipesan dengan Python, sehingga mengakses elemen pertama adalah sewenang-wenang.
Saya baru saja menerjemahkan beberapa kode Python 2 ke Python 3:
keys = d.keys()
for (i, res) in enumerate(some_list):
k = keys[i]
# ...
yang tidak cantik, tapi juga tidak terlalu buruk. Pada awalnya, saya akan menggantinya dengan monster itu
k = next(itertools.islice(iter(keys), i, None))
sebelum saya menyadari ini jauh lebih baik ditulis sebagai
for (k, res) in zip(d.keys(), some_list):
yang bekerja dengan baik.
Saya percaya bahwa dalam banyak kasus lain, pengindeksan kunci kamus berdasarkan posisi dapat dihindari. Meskipun kamus diperintahkan dalam Python 3.7, dengan mengandalkan itu tidak cantik. Kode di atas hanya berfungsi karena konten some_list
baru saja dihasilkan dari konten d
.
Perhatikan kode Anda dengan saksama jika Anda benar-benar perlu mengakses disk_keys
elemen dengan indeks. Mungkin Anda tidak perlu melakukannya.
dict.keys()
mengembalikan set seperti objek tampilan, bukan daftar (jadi, pengindeksan tidak mungkin). Gunakankeys = list(test)