xam1816
у filter() есть какие-нибудь преимущества, перед генератором? Или filter() уже безнадежно устарел?
Да не устаревала она никогда. Была только версия функции filter() во втором питоне, которая возвращала список, что тратило память и время. Эта функция filter() во втором питоне и устарела. А так, это обычная функция из функциональной парадигмы, которая обычно есть во всех функциональных языках. Очень странно, если её нет в них под тем или иным именем.
Если ты пишешь во втором питоне, то не используй функцию filter(). Используй либо генератор, которые есть во втором питоне, либо используй функцию itertools.ifilter(), которая есть во втором питоне.
Но второй питон вот как раз и устарел. Но есть ещё организации, где пишут на втором питоне, потому что переписывать на третий питон внутренние проекты организации дорого. Вот на каком-то таком проекте некоторые ребята и сидят, а потом ещё и путают положение в питоне вообще с положением в питоне в своей конкретной организации. Так что не слушай эту ахинею. Читай книги и официальную документацию. Всё, что ты найдёшь неформальное, скорее всего, окажется вот такими возгласами ребят, сидящих в снгшных проектах, которые до сих пор лопухом подтираются и не знают про мировые международные тренды, так как английский - очень сложный язык и на нём очень сложно читать новую информацию.
xam1816
у filter() есть какие-нибудь преимущества, перед генератором?
Конечно есть, функция filter() чиитаемее любого генератора.
Выполни
и перечитай то, что там написано.
Вот пара вызовов функции filter() в одном операторе
>>> filter(lambda i: 1 < i < 5, map(int, filter(str.isdigit, '123abcdef456')))
<filter object at 0x7f0a26b667f0>
>>> list(_)
[2, 3, 4]
>>>
Попробуй, перепиши это на генераторы, как того требует
второй питон в снгшной конторке, где подорожником жопу подтирают, не зная про туалетную бумагу, - сразу поймёшь в чём бред заключается.
P. S.
Эту хрень, что во втором питоне надо то, во втором питоне надо это, я от него уже слыхал. Да, во втором питоне надо, только вот кому он упал, этот второй питон. Когда он писал впервые про это, второй питон только готовили к консервации. Сейчас же он официально законсервирован и превращён в легаси. А этот всё не унимается. Всё уже в труху превратилось давным давно, четвёртый питон уже на подходе, а он до сих пор про функцию filter() пишет, которую во втором питоне нельзя использовать, из-за того что она там тяжёлый список возвращает.