Python 사전의 중복 키
프로그래밍 영역에서 사전은 고유 키를 해당 값에 매핑하여 데이터를 구성하는 데 매우 귀중한 것으로 입증되었습니다. 그러나 표준 Python 사전 구현은 엄격한 원칙을 준수합니다. 각 키는 사전 내에서 고유해야 합니다. 이 제약 조건은 데이터 세트의 중복 키와 관련된 시나리오를 처리할 때 문제를 제기합니다.
중복 키를 사용하여 사전 생성
중복 자동차 등록이 포함된 텍스트 파일을 발견했다고 가정해 보겠습니다. 번호는 각각 운전자 이름, 내선 번호, 주차 위치 등 다양한 정보와 연결되어 있습니다. 임무는 등록 번호를 키로, 해당 데이터를 값으로 사용하여 사전을 구성하는 것입니다. 다음 스니펫은 일반적인 접근 방식을 보여줍니다.
data_dict = {} data_list = [] def createDictionaryModified(filename): path = "C:\Users\user\Desktop" basename = "ParkingData_Part3.txt" filename = path + "//" + basename file = open(filename) contents = file.read() print(contents, "\n") data_list = [lines.split(",") for lines in contents.split("\n")] for line in data_list: regNumber = line[0] name = line[1] phoneExtn = line[2] carpark = line[3].strip() details = (name, phoneExtn, carpark) data_dict[regNumber] = details print(data_dict, "\n") print(data_dict.items(), "\n") print(data_dict.values())
그러나 이 코드는 Python의 기본 사전 동작으로 인해 제한 사항에 직면합니다. 즉, 중복 키로 인해 이전 값을 덮어쓰게 됩니다. 이를 방지하려면 사전에 목록이나 집합을 저장하는 것이 해결책입니다.
Collections.defaultdict 사용
Python 표준 라이브러리는 이러한 목적에 유용한 도구를 제공합니다. collections.defaultdict. 이 클래스는 기본 팩토리로 사전을 초기화하여 존재하지 않는 키가 새 목록이나 세트를 생성하도록 보장합니다(팩토리 인수에 따라 다름).
from collections import defaultdict data_dict = defaultdict(list)
중복 키로 사전을 채우려면 간단히 원래 할당문을
data_dict[regNumber] = details
다음으로 대체:
data_dict[regNumber].append(details)
이 전략은 효과적으로 목록 사전을 생성합니다. 여기서 각 키는 관련 값 목록에 해당합니다. collections.defaultdict를 활용하면 Python 사전에서 중복 키를 성공적으로 처리할 수 있습니다.
위 내용은 Python 사전을 생성할 때 중복 키를 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!