> 백엔드 개발 > 파이썬 튜토리얼 > 키-값 일치를 기반으로 Python의 목록에서 사전을 효율적으로 찾고 검색하는 방법은 무엇입니까?

키-값 일치를 기반으로 Python의 목록에서 사전을 효율적으로 찾고 검색하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-10 06:43:37
원래의
995명이 탐색했습니다.

How to Efficiently Find and Retrieve a Dictionary from a List in Python Based on Key-Value Matching?

특정 기준에 따라 목록에서 사전 검색 및 가져오기

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿