Python에서 사전 목록 검색

Muhammad Maisam Abbas 2023년1월30일
  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}
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