Получить элемент списка по атрибуту в Python

Мне нужно загрузить список объектов строки базы данных в память, а затем захватить одну из этих строк по ее уникальному идентификатору. Есть ли чистый, питонический способ поиска одного объекта из списка по значению атрибута? Или я просто петлю и сравниваю?

3 Solutions collect form web for “Получить элемент списка по атрибуту в Python”

Да, вы петли и сравниваете:

items = [item for item in container if item.attribute == value] 

И вы получите список, который можно проверить, чтобы узнать, сколько вы нашли.

Если вы будете делать это много, подумайте о том, чтобы использовать словарь, где ключ – это интересующий вас атрибут.

Если вы это сделаете, он дает только первое совпадение, вместо сравнения всего списка: найдите первый элемент последовательности, соответствующий критерию .

Если вы сделаете что-то вроде этого, вам не нужно ловить исключение, но вместо этого вместо него получить None :

 item = next((i for i in items if i == 'value'), None) 

Вы можете фильтровать :

 matches = filter(lambda obj: obj.attribute == "target value", myListOfObjects) 

Обратитесь к ответу kindall за советом по эффективности. Если вы делаете это много, это не так.

  • сортировка нескольких списков на основе одного списка в python
  • Присоединить список float к разделительной строке в Python
  • Python: в чем разница между (1,2,3) и , и когда я должен использовать их?
  • Python: как удалить все повторяющиеся элементы из списка
  • операции python-list
  • Объединение двух списков в кортежи в python
  • Python набирает длину списка в подсписке
  • Объект 'int' не может быть вызван при использовании функции sum в списке
  • Объединение 2 списков в python
  • Проверка того, находятся ли какие-либо элементы в одном списке в другом
  • Последовательность элементов в списке, удовлетворяющих условию
  •  
    Interesting Posts for Van-Lav

    Какой скрипт Vim вы рекомендуете для проверки синтаксиса Python на лету?

    Построение кривой с эквидистантными (дуговыми) маркерами

    Как вставить строку в фрейм данных при определенных условиях?

    Ошибка в алгоритме RK4 в Python

    Функция print () Python 3 с символами фарси / арабский

    Как я могу получить html-контент, написанный JavaScript с помощью Selenium / Python

    Hadoop потоковое с Python: отслеживание номеров строк

    Самый простой DHT для реализации

    сериализация и десериализация лямбда

    Создание подписок из списка элементов списка

    Я бы хотел, чтобы некоторые советы, почему это не будет вставлять данные в мою таблицу SQL

    Аргумент char * преобразован в python для вызова функции python в C ++ с помощью boost.python

    передача строк в функции ctypes в Python 3.x

    Как использовать расширение в snakemake, когда некоторые особые комбинации подстановок не нужны?

    Что отличается между makedirs и mkdir of os?

    Python - лучший язык программирования в мире.