Мне довелось найти базовую фильтрацию: у меня есть список, и я должен отфильтровать его по атрибуту элементов.
Мой код выглядел так:
my_list = [x for x in my_list if x.attribute == value]
Но потом я подумал: не лучше ли написать это так?
my_list = filter(lambda x: x.attribute == value, my_list)
Это более читаемо, и если это необходимо для производительности, лямбда можно извлечь, чтобы что-то получить.
Вопрос: есть ли какие-либо оговорки в использовании второго способа? Любая разница в производительности? Я просто пропустил Pythonic Way ™ и должен сделать это по-другому (например, с помощью itemgetter вместо лямбда)?