반응형
튜플 투 딕셔너리 목록
현재 Python에서 튜플 목록을 사전으로 변환하는 방법은 다음과 같습니다.
l = [('a',1),('b',2)]
h = {}
[h.update({k:v}) for k,v in l]
> [None, None]
h
> {'a': 1, 'b': 2}
더 좋은 방법이 있습니까?이를 위해서는 원라이너가 있어야 할 것 같습니다.
튜플 목록을 직접 호출하기만 하면 됩니다.
>>> my_list = [('a', 1), ('b', 2)]
>>> dict(my_list)
{'a': 1, 'b': 2}
여기 있는 모든 사람들은 튜플 목록이 키와 값 사이에 일대일 매핑이 있다고 가정하는 것 같습니다(예: 사전에 중복된 키가 없는 경우).이것이 이 주제에 대한 검색의 첫 번째 질문이기 때문에 중복 문제를 처리해야 하는 더 일반적인 경우에 대한 답변을 게시합니다.
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]}
그dict
생성자는 사용자가 입력한 대로 입력을 받습니다(키/값 튜플).
>>> l = [('a',1),('b',2)]
>>> d = dict(l)
>>> d
{'a': 1, 'b': 2}
설명서에서 다음을 참조하십시오.
예를 들어, 이들은 모두 {"하나": 1, "둘": 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}
@pegah 답변에 대한 기능 결정:
from itertools import groupby
mylist = [('a', 1), ('b', 3), ('a', 2), ('b', 4)]
#mylist = iter([('a', 1), ('b', 3), ('a', 2), ('b', 4)])
result = { k : [*map(lambda v: v[1], values)]
for k, values in groupby(sorted(mylist, key=lambda x: x[0]), lambda x: x[0])
}
print(result)
# {'a': [1, 2], 'b': [3, 4]}
언급URL : https://stackoverflow.com/questions/6522446/list-of-tuples-to-dictionary
반응형
'source' 카테고리의 다른 글
Angular를 사용하여 데이터 속성을 작성하려면 어떻게 해야 합니까? (0) | 2023.04.27 |
---|---|
컨테이너 뷰 내에서 여러 뷰의 간격을 균등하게 지정합니다. (0) | 2023.04.27 |
Python 스크립트 내에서 UAC 권한 상승을 요청하시겠습니까? (0) | 2023.04.27 |
엔티티 프레임워크의 모든 엔티티 삭제 (0) | 2023.04.27 |
대규모 테이블에서 SQL Server 쿼리 성능 향상 (0) | 2023.04.27 |