Я хотел бы эффективно рассчитать размер отфильтрованного списка, то есть я не хочу хранить весь отфильтрованный список в памяти, я просто хочу получить его размер. Есть ли более "питонный" способ, чем вычисление размера с помощью цикла for?
Например:
my_list = [1,2,3,4]
# this loads the entire **filtered** list in memory
size_of_filtered_list = len([item for item in my_list if item % 2 == 0])
# is there a more pythonic way than this?
size_of_filtered_list = 0
for item in my_list:
if item % 2 == 0:
size_of_filtered_list += 1
UPDATE
Извиняюсь, если мне не ясно. Хотя первый список (например, my_list) уже находится в памяти, я не хочу создавать дополнительный список, содержащий отфильтрованные элементы, просто для их подсчета. Я знал о генераторах и сумме, но просто не связывал точки ... Спасибо за ваши ответы.