Mam listę, która wygląda następująco:
[('A', 1), ('B', 2), ('C', 3)]
Chcę przekształcić go w słownik, który wygląda tak:
{'A': 1, 'B': 2, 'C': 3}
Jak najlepiej to zrobić?
EDYCJA: Moja lista krotek bardziej przypomina:
[(A, 12937012397), (BERA, 2034927830), (CE, 2349057340)]
python
list
dictionary
Fred Wilson
źródło
źródło
A
,B
(lubBERA
) iC
(lubCE
) naprawdę są? DziękiOdpowiedzi:
TO jest twoje rzeczywiste pytanie.
Odpowiedź jest taka, że elementy listy nie są tym, za co myślisz. Jeśli wpiszesz
myList[0]
, okaże się, że pierwszy element listy nie jest podwójną krotką, np('A', 1)
. Dwiema krotkami, ale raczej iterowalną długością 1916.Kiedy rzeczywiście mieć listę w postaci wy podanej w oryginalnym pytanie (
myList = [('A',1),('B',2),...]
), wszystko co musisz zrobić, todict(myList)
.źródło
[(1,2), (1,3)]
->{1:3}
wyłamałby twoje klucze i straciłby informacje! Dykt jest relacją jeden do * z O (1) czasem wstawiania / usuwania. Lista to lista.źródło
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
Spowoduje to, że wynik'A': 1
może nie być pożądany.Czy próbowałeś tego?
źródło
dict([string1, string2, string3, string4])
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
spowoduje to, że'A': 1
nie będzie to pożądany rezultat.Oto sposób obsługi zduplikowanych „kluczy” krotki:
źródło
Innym sposobem korzystania ze słownika,
źródło
Jeśli Tuple nie ma kluczowych powtórzeń, jest to proste.
Jeśli krotka ma kluczowe powtórzenia.
źródło
źródło