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

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

Barbara Streisand
풀어 주다: 2024-12-11 06:07:11
원래의
820명이 탐색했습니다.

How to Efficiently Search for a Dictionary in a List Based on a Key-Value Pair in Python?

Python에서 목록 내 사전 검색

문제:

사전 목록이 제공됨 , 키-값 쌍을 기반으로 특정 사전을 효율적으로 검색하고 검색하려면 어떻게 해야 할까요? 이 경우 "name" 키가 "Pam"으로 설정된 사전을 찾고 싶습니다.

[
  { "name": "Tom", "age": 10 },
  { "name": "Mark", "age": 5 },
  { "name": "Pam", "age": 7 },
]
로그인 후 복사

해결책:

검색 작업을 수행하려면 , Python에 내장된 생성기 표현식을 활용할 수 있습니다.

dicts = [
    { "name": "Tom", "age": 10 },
    { "name": "Mark", "age": 5 },
    { "name": "Pam", "age": 7 },
]

result = next(item for item in dicts if item["name"] == "Pam")
print(result)
로그인 후 복사

이 코드는 다음을 사용하여 목록의 각 사전을 반복합니다. "item["name"] == "Pam"" 조건을 기반으로 하는 생성기 표현식 및 필터입니다. 일치하는 사전이 발견되면 next() 함수는 일치하는 첫 번째 항목을 반환합니다.

{'name': 'Pam', 'age': 7}
로그인 후 복사

또는 일치하는 항목을 찾을 수 없는 경우를 처리해야 하는 경우 다음 접근 방식을 사용할 수 있습니다. :

next((item for item in dicts if item["name"] == "Pam"), None)
로그인 후 복사

일치하는 항목이 없으면 None을 반환하는 코드입니다.

항목이 아닌 일치하는 항목의 인덱스를 찾으려면 자체적으로 목록을 열거할 수 있습니다.

next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
로그인 후 복사

위 내용은 Python의 키-값 쌍을 기반으로 목록에서 사전을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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