Ну как бы map и filter разное делают, непонятно, чего ты ожидал.
что разное то понятно. Но конструкция с лямбдой для списке одинаковая. см пример. https://book.pythontips.com/en/latest/map_filter.html
И что что одинаковая? Ты сравниваешь количество элементов в результате, оно будет ожидаемо разным.
но ведь лямбда имеет одинаковое условие...? Можно подробнее.
Мап для каждого элемента выполняет функцию и результат складывает в возвращаемую последовательность. Фильтр — вычисляет функцию и если результат истиный, складывает в возвращаемую последовательность исходный элемент. Если ложный, то пропускает.
Const? Тишка? Alex? Zart? Кто еще тут выживший знающий есть
Тебе же уже сказали, что разные функции приводят к разным результатам, что не так?
Первый список ты отфильтровал ифом Второй фильтром А третий ты никак не фильтровал, ты просто сделал набор True / False того же размера, что и исходный список
о! Вкурил спасибо. Тогда чтоб достичь того же результата с мапом получается надо сделать обратной условие и list.pop / remove?
Надо просто не пытаться достигать этого мапом.
🫡 понял. а между генератором списка и filter что теоретически должно быть быстрее ? и почему?
Если бы был однозначный ответ тогда зачем бы существовало второе?
Быстрее — тут вопрос более философский чем практический. Скорее всего в данном случае лист компрехеншен будет чуть быстрее. Но использовать его лучше потому что он чуть более читаемый и идиоматичный.
на практике - компрехеншн быстрее получился.
Ну, у тебя вместо методики измерения угадайка, судя по блестящей идее использовать time.time(). Так что это ни о чём не говорит.
cpu time взять?
Модуль timeit, Либо вручную всякие perf_counter.
сейчас попробую, тогда подумал об ...time.process_time()
среднее с 25 прогонов timeit, результат концептуально тот-же оказался. 🙂
25 прогонов это не показатель Делай ближе к миллиону (или просто оставь миллион как по дефолту)
🙄 та и то выглядит как победа огромная. Думал набросаю на скорую руку то-се как знаю проверить идеи. А потом как дошло до дела, пол гб/гб csv, то моему пандасу становится плохо. Сижу перехожу не списки.
Попробуй polars :)
Не видно пандаса тут, пол гб csv не объём. Попробуй pyarrow
Ты неправильно пользуешься пандасом. Это не самая быстрая в мире фигня, но и не настолько тормозная. И судя по сплитам в коде — ты творишь странное.
есть пачка csv. Из них выбираю диапазоны записей по временным рядам. И дальше их кручу на барабане. .item / itertuples() * куча вычислений = ему плохо. Думаю об том чтоб крутить список
Зачем итерироваться?
Зачем ты делаешь это с пандасом.
Обсуждают сегодня