728x90
반응형
질문 : Python 사전 검색 목록
내가 이것을 가지고 있다고 가정합니다.
[
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]
이름으로 "Pam"을 검색하여 관련 사전을 검색하고 싶습니다 : {name: "Pam", age: 7}
이것을 달성하는 방법?
답변
생성기 표현식을 사용할 수 있습니다.
>>> dicts = [
... { "name": "Tom", "age": 10 },
... { "name": "Mark", "age": 5 },
... { "name": "Pam", "age": 7 },
... { "name": "Dick", "age": 12 }
... ]
>>> next(item for item in dicts if item["name"] == "Pam")
{'age': 7, 'name': 'Pam'}
존재하지 않는 항목을 처리해야하는 경우 Matt 사용자가 의견에서 제안한 대로 수행하고 약간 다른 API를 사용하여 기본값을 제공 할 수 있습니다.
next((item for item in dicts if item["name"] == "Pam"), None)
항목 자체가 아닌 항목의 색인을 찾으려면 목록을 열거 () 할 수 있습니다.
next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
출처 : https://stackoverflow.com/questions/8653516/python-list-of-dictionaries-search
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python에서 환경 변수를 설정하는 방법 (0) | 2021.06.18 |
---|---|
파이썬에서 추상 클래스와 인터페이스의 차이점 (0) | 2021.06.18 |
"JSON 직렬화 가능하지 않은 datetime.datetime"을 극복하는 방법 (0) | 2021.06.16 |
파이썬의 자식 클래스에서 부모 클래스의 메서드를 호출하는 방법 (0) | 2021.06.16 |
pickle을 사용하여 dict을 저장하는 방법 (0) | 2021.06.14 |