Chcę utworzyć słownik z podanej listy, w jednej linii . Kluczami słownika będą indeksy, a wartości elementami listy. Coś takiego:
a = [51,27,13,56] #given list
d = one-line-statement #one line statement to create dictionary
print(d)
Wynik:
{0:51, 1:27, 2:13, 3:56}
Nie mam żadnych konkretnych wymagań, dlaczego chcę mieć jedną linię. Po prostu odkrywam Pythona i zastanawiam się, czy to możliwe.
python
list
dictionary
python-3.x
Nawaz
źródło
źródło
{[x[0]:51, x[1]:27, x[2]:13, x[3]:56}
.zip()
:dict(zip(x, a))
.Odpowiedzi:
a = [51,27,13,56] b = dict(enumerate(a)) print(b)
będzie produkować
{0: 51, 1: 27, 2: 13, 3: 56}
źródło
count()
...Z innym konstruktorem masz
a = [51,27,13,56] #given list d={i:x for i,x in enumerate(a)} print(d)
źródło
Spróbuj
enumerate
: zwróci listę (lub iterator) krotek(i, a[i])
, z których możesz zbudowaćdict
:a = [51,27,13,56] b = dict(enumerate(a)) print b
źródło
{x:a[x] for x in range(len(a))}
źródło
Po prostu użyj rozumienia list.
a = [51,27,13,56] b = dict( [ (i,a[i]) for i in range(len(a)) ] ) print b
źródło