반응형
키-값 튜플 목록을 사전으로 변환하는 방법?
다음과 같은 목록이 있습니다.
[('A', 1), ('B', 2), ('C', 3)]
다음과 같은 사전으로 바꾸고 싶습니다.
{'A': 1, 'B': 2, 'C': 3}
이것에 대해 가장 좋은 방법은 무엇입니까?
편집 : 내 튜플 목록은 실제로 다음과 같습니다.
[(A, 12937012397), (BERA, 2034927830), (CE, 2349057340)]
이것은 목록을 나누고 압축하는 것과 같은 오류를 발생시킵니다. ValueError : 사전 업데이트 시퀀스 요소 # 0의 길이는 1916입니다. 2가 필요합니다
이것이 실제 질문입니다.
답은리스트의 요소들이 당신이 생각하는 것과 다르다는 것입니다. 입력 myList[0]
하면 목록의 첫 번째 요소가 두 개의 튜플이 ('A', 1)
아니라 1916 길이의 iterable이라는 것을 알 수 있습니다.
원래 질문 ( )에 명시된 양식의 목록 이 실제로 만들어 지면 다음과 같이 myList = [('A',1),('B',2),...]
하면됩니다 dict(myList)
.
>>> dict([('A', 1), ('B', 2), ('C', 3)])
{'A': 1, 'C': 3, 'B': 2}
이것을 시도 했습니까?
>>> l=[('A',1), ('B',2), ('C',3)]
>>> d=dict(l)
>>> d
{'A': 1, 'C': 3, 'B': 2}
중복 튜플 "키"를 처리하는 방법은 다음과 같습니다.
# An example
l = [('A', 1), ('B', 2), ('C', 3), ('A', 5), ('D', 0), ('D', 9)]
# A solution
d = dict()
[d [t [0]].append(t [1]) if t [0] in list(d.keys())
else d.update({t [0]: [t [1]]}) for t in l]
d
OUTPUT: {'A': [1, 5], 'B': [2], 'C': [3], 'D': [0, 9]}
목록 이해를 사용하는 또 다른 방법은
>>> t = [('A', 1), ('B', 2), ('C', 3)]
>>> d = [{ i:j for i,j in t }]
>>> d
[{'A': 1, 'C': 3, 'B': 2}]
참고 URL : https://stackoverflow.com/questions/6586310/how-to-convert-list-of-key-value-tuples-into-dictionary
반응형
'IT story' 카테고리의 다른 글
`shouldOverrideUrlLoading`은 실제로 더 이상 사용되지 않습니까? (0) | 2020.07.17 |
---|---|
디스플레이 : 인라인 vs 디스플레이 : 블록 (0) | 2020.07.17 |
Roslyn SyntaxNodes는 재사용됩니까? (0) | 2020.07.16 |
Hindley-Milner 란 무엇입니까? (0) | 2020.07.16 |
ls -l 다음에 나오는 첫 번째 줄의 "전체"는 무엇입니까? (0) | 2020.07.16 |