현재 파이썬에서 튜플 목록을 사전으로 변환하는 방법은 다음과 같습니다.
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]}
답변
