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». Теперь я хочу найти запись внутри testSet по значению ID. Поэтому, когда мне присваивается ID = 230, я хочу вернуть запись, что его идентификационный элемент равен 230.

Как я могу это сделать?

ответ

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

Это возвращает первый элемент с таким идентификатором или 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] 

Это возвращает все элементы с указанным идентификатором. Если вы хотите только первый, добавьте [0] (после проверки, существует ли он, например:

def find_set(id): 
    elems = [elem for elem in set if elem['ID'] == id] 
    return elems[0] if elems else None 
Смежные вопросы