Saya memiliki daftar yang terlihat seperti:
[('A', 1), ('B', 2), ('C', 3)]
Saya ingin mengubahnya menjadi kamus yang terlihat seperti:
{'A': 1, 'B': 2, 'C': 3}
Apa cara terbaik untuk melakukannya?
EDIT: Daftar tupel saya sebenarnya lebih seperti:
[(A, 12937012397), (BERA, 2034927830), (CE, 2349057340)]
python
list
dictionary
Fred Wilson
sumber
sumber
A
,B
(atauBERA
) danC
(atauCE
) sebenarnya? Terima kasihJawaban:
ITULAH pertanyaan Anda yang sebenarnya .
Jawabannya adalah bahwa elemen-elemen dalam daftar Anda bukan seperti yang Anda pikirkan. Jika Anda mengetik,
myList[0]
Anda akan menemukan bahwa elemen pertama dari daftar Anda bukan dua-tupel, misalnya('A', 1)
, tetapi lebih panjang 1916 iterable.Setelah Anda benar - benar memiliki daftar dalam formulir yang Anda sebutkan dalam pertanyaan awal Anda (
myList = [('A',1),('B',2),...]
), yang perlu Anda lakukan adalahdict(myList)
.sumber
[(1,2), (1,3)]
->{1:3}
akan merusak kunci Anda dan kehilangan info! Dict adalah hubungan satu-ke-* dengan O (1) waktu insert / delete. Daftar adalah daftar.sumber
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
akan menghasilkan memiliki'A': 1
yang mungkin bukan hasil yang diinginkan.Sudahkah Anda mencoba ini?
sumber
dict([string1, string2, string3, string4])
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
akan menghasilkan'A': 1
yang mungkin bukan hasil yang diinginkan.Berikut adalah cara untuk menangani duplikat "kunci" tuple:
sumber
Cara lain menggunakan pemahaman kamus,
sumber
Jika Tuple tidak memiliki pengulangan kunci, itu Sederhana.
Jika tuple memiliki pengulangan kunci.
sumber
sumber