Python 사전 의 키 가 여러 값 을 비 추 는 방법(목록 이나 집합)

1975 단어 Python자전.키 맵
하나의 사전 은 하나의 키 가 하나의 단일 값 에 대응 하 는 맵 이다.키 하나 에 여러 값 을 표시 하려 면 목록 이나 집합 같은 다른 용기 에 이 여러 값 을 넣 어야 합 니 다.예 를 들 어,너 는 아래 와 같이 이런 사전 을 구성 할 수 있다.

d = {
 'a' : [1, 2, 3],
 'b' : [4, 5]
}
e = {
 'a' : {1, 2, 3},
 'b' : {4, 5}
}
사용 목록 을 선택 하 느 냐 집합 을 선택 하 느 냐 는 실제 수요 에 달 려 있다.요소 의 삽입 순 서 를 유지 하려 면 목록 을 사용 해 야 합 니 다.중복 요 소 를 제거 하려 면 집합 을 사용 하 십시오(요소 의 순서 문제 에 관심 이 없습니다).
collections 모듈 의 defaultdict 를 편리 하 게 사용 하여 이런 사전 을 만 들 수 있 습 니 다.defaultdict 의 특징 은 모든 key 가 처음에 대응 하 는 값 을 자동 으로 초기 화 하 는 것 입 니 다.따라서 요소 추가 작업 에 만 관심 을 가 져 야 합 니 다.
예 를 들 면:

from collections import defaultdict

d = defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(4)

d = defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['b'].add(4)
주의해 야 할 것 은 defaultdict 가 접근 할 키(현재 사전 에 이러한 키 가 존재 하지 않 더 라 도)에 맵 실 체 를 자동 으로 만 듭 니 다.이러한 특성 이 필요 하지 않다 면 일반적인 사전 에서 setdefault()방법 으로 대체 할 수 있 습 니 다.예 를 들 면:

d = {} # A regular dictionary
d.setdefault('a', []).append(1)
d.setdefault('a', []).append(2)
d.setdefault('b', []).append(4)
그러나 많은 프로그래머 들 은 setdefault()을 사용 하기 가 좀 어색 하 다 고 생각한다.호출 할 때마다 새로운 초기 값 의 인 스 턴 스 를 만들어 야 하기 때 문 입 니 다(예 프로그램의 빈 목록[]).
토론 하 다.
일반적으로 다 중 맵 사전 을 만 드 는 것 은 간단 하 다.하지만 자신 이 이 루 는 것 을 선택 하면 값 초기 화 에 문제 가 있 을 수 있 습 니 다.아래 와 같이 이 루어 질 수 있 습 니 다.

d = {}
for key, value in pairs:
 if key not in d:
  d[key] = []
 d[key].append(value)
defaultdict 를 사용 하면 코드 가 더욱 간결 해 집 니 다.

d = defaultdict(list)
for key, value in pairs:
 d[key].append(value)
이 Python 사전 의 키 가 여러 값 을 매 핑 하 는 방법(목록 이나 집합)은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기