Python에서 사전 목록 검색

  1. next()함수를 사용하여 Python에서 사전 목록 검색
  2. Python에서filter()함수를 사용하여 사전 목록 검색
  3. List Comprehension을 사용하여 Python에서 사전 목록 검색
Python에서 사전 목록 검색

이 자습서에서는 Python에서 사전 목록을 검색하는 데 사용할 수있는 방법을 소개합니다.

next()함수를 사용하여 Python에서 사전 목록 검색

next()함수를 사용하여 주어진 반복기에서 다음 항목으로 결과를 제공 할 수 있습니다. 이 방법은 또한 모든 조건에 대해 프로세스를 테스트하기 위해for루프를 사용해야합니다.

다음 코드는next()함수를 사용하여 Python에서 사전 목록을 검색합니다.

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]
print(next(x for x in lstdict if x["name"] == "Klaus"))
print(next(x for x in lstdict if x["name"] == "David"))

출력:

{'name': 'Klaus', 'age': 32}
Traceback (most recent call last):
  File "<string>", line 8, in <module>
StopIteration

이 방법은 사전 목록에 이미있는 이름을 검색 할 때 성공적으로 구현됩니다. 그래도 사전 목록에없는 이름을 검색하면StopIteration오류가 발생합니다.

그러나이 문제는 위의 코드에서 쉽게 처리 할 수 ​​있습니다. 약간 다른 API를 사용하여 기본값을 조정하고 제공하기 만하면됩니다.

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]
print(next((x for x in lstdict if x["name"] == "David"), None))

출력:

None

항목 자체를 찾는 대신 사전 목록에서 항목의 색인을 찾을 수도 있습니다. 이를 구현하기 위해enumerate()함수를 사용할 수 있습니다.

다음 코드는next()함수와enumerate()함수를 사용하여 항목의 색인을 검색하고 찾습니다.

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]
print(next((i for i, x in enumerate(lstdict) if x["name"] == "Kol"), None))

출력:

2

Python에서filter()함수를 사용하여 사전 목록 검색

filter(function, sequence) 함수sequence를 Python의function과 비교하는 데 사용됩니다. 함수에 따라 시퀀스의 각 요소가 참인지 아닌지 확인합니다. lambda함수와 함께filter()함수를 사용하여 항목에 대한 사전 목록을 쉽게 검색 할 수 있습니다. Python3에서filter()함수는filter클래스의 객체를 반환합니다. list()함수를 사용하여 해당 객체를 목록으로 변환 할 수 있습니다.

다음 코드 예제는filter()lambda함수를 사용하여 특정 요소에 대한 사전 목록을 검색하는 방법을 보여줍니다.

listOfDicts = [
    {"name": "Tommy", "age": 20},
    {"name": "Markus", "age": 25},
    {"name": "Pamela", "age": 27},
    {"name": "Richard", "age": 22},
]
list(filter(lambda item: item["name"] == "Richard", listOfDicts))

출력:

[{'age': 22, 'name': 'Richard'}]

lambda함수와 함께filter()함수를 사용하여name키가Richard와 같은 요소에 대한 사전 목록을 검색했습니다. 먼저 사전 목록 인listOfDicts를 초기화하고filter()함수를 사용하여lambda함수lambda item: item['name'] == 'Richard'와 일치하는 값을 검색했습니다. 그것. 마지막으로list()함수를 사용하여 결과를 목록으로 변환했습니다.

List Comprehension을 사용하여 Python에서 사전 목록 검색

목록 이해는 이미 존재하는 목록의 주어진 값을 기반으로 구성 될 목록을 만드는 비교적 짧고 매우 우아한 방법입니다.

list comprehension을 사용하여 Python에서 사전 목록 검색 결과를 생성하는 목록을 반환 할 수 있습니다.

다음 코드는 목록 이해력을 사용하여 Python에서 사전 목록을 검색합니다.

lstdict = [
    {"name": "Klaus", "age": 32},
    {"name": "Elijah", "age": 33},
    {"name": "Kol", "age": 28},
    {"name": "Stefan", "age": 8},
]

print([x for x in lstdict if x["name"] == "Klaus"][0])

출력:

{'name': 'Klaus', 'age': 32}
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python Dictionary

관련 문장 - Python List