Спасибо Алексею за полное и лаконичное пояснение 🧡, а я добавлю еще пояснялку с замерами по памяти

➖➖

Я взяла тестовый файлик с 1 млн строк и протестила все функции на нем по типу такого:

`import sys

with open('1000000 Sales Records.csv') as f: f_list = f.readlines()

print(type(f_list)) print(len(f_list)) print(sys.getsizeof(f_list)) # in bytes

🔶Результаты****🔶 🟣read()

123 793 263 - длина строки 123 793 312 - размер в байтах

🟣readlines()

1 000 001 - количество строк (+заголовок) 8 448 728 - размер в байтах

🟣файловый итератор

208 - размер в байтах

➡️ Получилось, что на выборке в 1 млн строк c длиной ~ 200 символов выигрыш по памяти между списком и итератором составил в 40k раз

➖➖

Если мы попробуем сделать такую же штуку с list(range(1000000)) vs range(1000000), то получим нечто похожее:

🟣list(range(1000000))

1 000 000 - количество чисел 8 000 056 - размер в байтах

🟣range(1000000)

1000000 - количество чисел 48 - размер в байтах

➡️ Тут с чиселками выигрыш в 166k раз

Вот и думайте

#python_tips`