Oto jak obecnie konwertuję listę krotek na słownik w Pythonie:
l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}
Czy jest lepszy sposób? Wygląda na to, że powinien istnieć jeden wiersz, aby to zrobić.
python
list
dictionary
tuples
Sarah Vessels
źródło
źródło
dict
, która przesłania element wbudowany Pythona o tej samej nazwie. Nigdy nie powinieneś tego robić.dict
nazwy zmiennej, z której otrzymałem błąd. Dzięki jeszcze raz.dict
Konstruktor przyjmuje wejście dokładnie jak masz go (krotki klucz / wartość).Z dokumentacji :
źródło
Ze
dict
zrozumieniem:źródło
Wygląda na to, że wszyscy tutaj zakładają, że lista krotek ma mapowanie jeden do jednego między kluczem a wartościami (np. Nie ma zduplikowanych kluczy dla słownika). Ponieważ jest to pierwsze pytanie, które pojawia się podczas wyszukiwania tego tematu, zamieszczam odpowiedź na bardziej ogólny przypadek, w którym mamy do czynienia z duplikatami:
źródło