[python] 사전에 튜플 목록

현재 파이썬에서 튜플 목록을 사전으로 변환하는 방법은 다음과 같습니다.

l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}

더 좋은 방법이 있습니까? 이 작업을 수행하려면 한 줄짜리가 있어야 할 것 같습니다.



답변

dict()튜플 목록을 직접 호출하십시오 .

>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}


답변

dict생성자는 당신이 그것을 (키 / 값 튜플)가 정확하게 입력을 받아들입니다.

>>> l = [('a',1),('b',2)]
>>> d = dict(l)
>>> d
{'a': 1, 'b': 2}

로부터 문서 :

예를 들어 다음은 모두 { “one”: 1, “two”: 2}와 같은 사전을 반환합니다.

dict(one=1, two=2)
dict({'one': 1, 'two': 2})
dict(zip(('one', 'two'), (1, 2)))
dict([['two', 2], ['one', 1]])

답변

dict이해 :

h = {k:v for k,v in l}


답변

여기에있는 모든 사람들은 튜플 목록이 키와 값 사이에 일대일 매핑을한다고 가정하는 것 같습니다 (예 : 사전에 중복 된 키가 없음). 이 주제에 대해 검색하는 첫 번째 질문이므로 중복을 처리해야하는보다 일반적인 경우에 대한 답변을 게시합니다.

mylist = [(a,1),(a,2),(b,3)]
result = {}
for i in mylist:
   result.setdefault(i[0],[]).append(i[1])
print(result)
>>> result = {a:[1,2], b:[3]}


답변