2013-05-08 3 views
0

내 데이터 구조는 다음과 같습니다파이썬 - 목록 내에서 사전 내부 요소를 검색

- testSet: a list of records in the test set, where each record 
      is a dictionary containing values for each attribute 

을 그리고 각 레코드에서 "ID"라는 요소가있다. 이제 ID 값으로 testSet 내부의 레코드를 검색하려고합니다. 따라서 ID = 230이 주어지면 ID 요소가 230이라는 레코드를 반환하고 싶습니다.

어떻게 할 수 있습니까?

답변

5
next((x for x in testSet if x["ID"] == 230), None) 

그러면 해당 ID가있는 첫 번째 항목이 표시되고 그렇지 않으면 None이 반환됩니다.

2

이와 비슷한?

for record in testSet: 
    if record['ID'] == 230: 
     return record 
0

예컨대 :

set = [{'ID': 50}, {'ID': 80}] 

def find_set(id): 
    return [elem for elem in set if elem['ID'] == id] 

이 지정된 ID와 함께 모든 항목을 반환합니다. 첫 번째 만 원할 경우 [0]을 추가하십시오 (예 :

def find_set(id): 
    elems = [elem for elem in set if elem['ID'] == id] 
    return elems[0] if elems else None 
).