Я хотел бы выбрать конкретный элемент, который удовлетворяет условию из (очень длинного) списка. В моем конкретном случае каждый элемент списка является классом, и условие, что я хочу, например, item.id == 1.Выберите элемент, который удовлетворяет условию
Я начал с
[item for item in collection if item.id == 1]
, но я не хочу пересечь весь список, потому что я уверен, что есть только один элемент, который удовлетворяет условию.
Другой вариант
def check(collection):
for item in collection:
if item.id == 1:
return item
Есть ли более эффективный способ? У Python 3 есть встроенная функция для этого? Другим вариантом может быть предварительная обработка списка, чтобы получить словарь, например.
{item.id : item for item in collection}
Не могли бы вы добавить класс в другой список, когда item.id изменяется до 1? – kezzos
Нет, я не могу id. У меня есть список таких элементов, и мне нужно выбрать конкретный. Если я добавлю каждый элемент в новый список, у меня будут 'len (collectcion)' новые списки с 1 элементом каждый – meto