[python] 한 줄 : 인덱스를 키로 사용하여 목록에서 사전 만들기

주어진 목록 에서 한 줄로 사전을 만들고 싶습니다 . 사전의 키는 인덱스가되고 값은 목록의 요소가됩니다. 이 같은:

a = [51,27,13,56]         #given list

d = one-line-statement    #one line statement to create dictionary

print(d)

산출:

{0:51, 1:27, 2:13, 3:56}

줄을 원하는 이유에 대한 구체적인 요구 사항이 없습니다 . 나는 단지 파이썬을 탐구하고 있고 그것이 가능한지 궁금합니다.



답변

a = [51,27,13,56]
b = dict(enumerate(a))
print(b)

생산할 것이다

{0: 51, 1: 27, 2: 13, 3: 56}

enumerate(sequence, start=0)

열거 형 개체를 반환합니다. sequence 는 sequence, iterator 또는 반복을 지원하는 다른 객체 여야합니다 . 에서 next()반환 된 반복기 의 메서드는 개수 ( 시작부터 기본값은 0)와 시퀀스 반복에서 얻은 값을 포함 하는를 반환 enumerate()합니다 .tuple


답변

다른 생성자를 사용하면

a = [51,27,13,56]         #given list
d={i:x for i,x in enumerate(a)}
print(d)


답변

시도해보십시오 enumerate: 튜플 목록 (또는 반복자)을 반환 (i, a[i])합니다 dict.

a = [51,27,13,56]
b = dict(enumerate(a))
print b


답변

{x:a[x] for x in range(len(a))}


답변

목록 이해력을 사용하십시오.

a = [51,27,13,56]
b = dict( [ (i,a[i]) for i in range(len(a)) ] )
print b


답변