Hanya sedikit orang yang muncul, terlepas dari banyaknya jawaban untuk pertanyaan ini, telah menunjukkan bahwa kamus adalah pemetaan yang tidak berurutan, dan karenanya (sampai berkat urutan penyisipan dengan Python 3.7) gagasan entri "pertama" dalam kamus secara harfiah dibuat tidak masuk akal. Dan bahkan OrderedDicthanya dapat diakses oleh indeks numerik menggunakan keburukan seperti mydict[mydict.keys()[0]](hanya Python 2, karena dalam Python 3 keys()adalah iterator non-subskrip.)
Mulai 3.7 dan seterusnya dan dan dalam praktik di 3,6 juga - perilaku baru diperkenalkan kemudian, tetapi tidak termasuk sebagai bagian dari spesifikasi bahasa sampai 3,7 - iterasi atas kunci, nilai atau item dari suatu dikt (dan, saya percaya, a set juga) akan menghasilkan objek yang paling terakhir disisipkan terlebih dahulu. Masih belum ada cara sederhana untuk mengaksesnya dengan indeks penyisipan numerik.
Mengenai pertanyaan memilih dan "memformat" item, jika Anda mengetahui kunci yang ingin Anda ambil dalam kamus, biasanya Anda akan menggunakan kunci tersebut sebagai subskrip untuk mengambilnya ( my_var = mydict['Apple']).
Jika Anda benar-benar ingin mengindeks item dengan nomor entri (mengabaikan fakta bahwa nomor entri tertentu akan berubah saat penyisipan dibuat) maka struktur yang sesuai mungkin adalah daftar tupel dua elemen. Dari pada
mydict = {
'Apple': {'American':'16', 'Mexican':10, 'Chinese':5},
'Grapes':{'Arabian':'25','Indian':'20'} }
Anda mungkin menggunakan:
mylist = [
('Apple', {'American':'16', 'Mexican':10, 'Chinese':5}),
('Grapes', {'Arabian': '25', 'Indian': '20'}
]
Di bawah rezim ini entri pertama adalah mylist[0]dalam bentuk daftar-berakhir klasik, dan nilainya ('Apple', {'American':'16', 'Mexican':10, 'Chinese':5}). Anda dapat mengulang seluruh daftar sebagai berikut:
for (key, value) in mylist: # unpacks to avoid tuple indexing
if key == 'Apple':
if 'American' in value:
print(value['American'])
tetapi jika Anda tahu Anda mencari kunci "Apple", mengapa Anda tidak menggunakan dict saja?
Anda dapat memperkenalkan tingkat tipuan tambahan dengan menyimpan daftar kunci ke dalam cache, tetapi kerumitan dalam menjaga dua struktur data dalam sinkronisasi pasti akan menambah kompleksitas kode Anda.