@faham이 제공하는 답변은 멋진 한 줄짜리이지만 값을 포함하는 사전에 색인을 반환하지 않습니다. 대신 사전 자체를 반환합니다. 다음과 같은 간단한 방법이 있습니다. 둘 이상의 인덱스 목록이 하나 이상 있거나 비어있는 목록이없는 경우 :
list = [{'id':'1234','name':'Jason'},
{'id':'2345','name':'Tom'},
{'id':'3456','name':'Art'}]
[i for i, d in enumerate(list) if 'Tom' in d.values()]
산출:
>>> [1]
이 접근법에 대해 내가 좋아하는 것은 간단한 편집으로 인덱스와 사전의 목록을 튜플로 얻을 수 있다는 것입니다. 이것이 내가 해결 하고이 답변을 찾는 데 필요한 문제입니다. 다음에서는 다른 사전에 중복 값을 추가하여 작동 방식을 보여줍니다.
list = [{'id':'1234','name':'Jason'},
{'id':'2345','name':'Tom'},
{'id':'3456','name':'Art'},
{'id':'4567','name':'Tom'}]
[(i, d) for i, d in enumerate(list) if 'Tom' in d.values()]
산출:
>>> [(1, {'id': '2345', 'name': 'Tom'}), (3, {'id': '4567', 'name': 'Tom'})]
이 솔루션은 값에 'Tom'이 포함 된 모든 사전을 찾습니다.