특정 기준에 따라 목록에서 사전 검색 및 가져오기
Python에서는 사전 목록을 조작하는 것이 일반적인 작업입니다. 이러한 시나리오 중 하나는 키-값 쌍을 기반으로 특정 사전을 검색하고 가져오는 것입니다.
문제:
다음 사전 목록을 고려하세요.
[ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 } ]
"이름" 키를 다음으로 설정하여 사전을 검색하고 가져오는 방법은 무엇입니까? "Pam"?
해결책:
이 문제를 해결하기 위해 아래와 같이 생성기 표현식을 활용할 수 있습니다.
dicts = [ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 }, { "name": "Dick", "age": 12 } ] result = next(item for item in dicts if item["name"] == "Pam")
생성기 표현식은 목록의 각 사전을 반복하고 "이름" 키가 "Pam"과 일치하는지 확인합니다. 일치하는 항목이 발견되면 해당 사전이 반환되어 결과 변수에 저장됩니다. next() 함수는 일치하는 첫 번째 항목이 반환되도록 보장합니다.
예를 들어 위의 코드 조각을 실행하면 사전을 검색합니다.
{'age': 7, 'name': 'Pam'}
항목을 찾을 수 없음 처리:
항목을 찾을 수 없는 경우 약간 다른 기본값을 제공하여 처리할 수 있습니다. API:
result = next((item for item in dicts if item["name"] == "Pam"), None)
None 인수는 일치하는 항목이 없을 경우 함수가 None을 반환하도록 보장합니다.
항목 색인 찾기:
항목 자체가 아닌 일치하는 항목의 인덱스를 찾으려면 enumerate()를 활용하면 됩니다. 함수:
index = next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
enumerate() 함수는 튜플의 반복자를 반환합니다. 여기서 각 튜플에는 인덱스와 항목이 포함됩니다. 생성기 표현식은 이 반복자를 사용하여 첫 번째로 일치하는 항목의 인덱스를 찾아 인덱스 변수에 저장합니다.
위 내용은 키-값 일치를 기반으로 Python의 목록에서 사전을 효율적으로 찾고 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!