Представьте, что я читаю в CSV-файл чисел, который выглядит следующим образом:карта функция столбцов списка итератора
1,6.2,10
5.4,5,11
17,1.5,5
...
И это действительно очень долго.
Я собираюсь перебирать этот файл с читателем CSV, как это:
import csv
reader = csv.reader('numbers.csv')
Теперь предположим у меня есть некоторые функции, которые могут принимать итератор как максимум:
max((float(rec[0]) for rec in reader))
Это находит максимум первого столбца и не нужно считывать весь файл в память.
Но что, если я хочу запустить max на каждый столбец csv-файла, все еще не читая весь файл в память?
Если Макс были переписаны так:
def max(iterator):
themax = float('-inf')
for i in iterator:
themax = i if i > themax else themax
yield
yield themax
я мог бы сделать некоторые фантазии работы (и есть), чтобы это произошло.
Но что, если я сдерживаю проблему и не позволяю переписывать max? Это возможно?
Спасибо!