FirstOrDefault python
Подскажите пожалуйста, есть ли в python функция LINQ как в C# FirstOrDefault? У меня имеется список, содержащий словари:
ls = [
{'id': 23, 'name': 'John'},
{'id': 58, 'name': 'Maria'}
]
Как мне вернуть из этого списка, словарь, где id=58?
В C# можно сделать следующим образом:
var value = ls.FirstOrDefault(l => l['id'] == 58)
Есть ли в python что-то подобное? Или мне придётся через for все значения перебирать?
Буду очень благодарен любой помощи
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Совсем аналогичная конструкция будет выглядеть несколько более тяжеловесно:
ls = [{'id': 23,
'name': 'John'},
{'id': 58,
'name': 'Maria'}]
print(next(filter(lambda x: x['id'] == 58, ls), None))
Аналогии тут примерно такие:
| Python | C# |
|---|---|
filter(lambda x: x['id'] == 58, ...) |
(l => l['id'] == 58) |
next(..., None) |
FirstOrDefault(...) |