Как вы знаете, в питоне нет потокового ввода-вывода — чтобы прочитать числа из входного файла, нужно знать, как там эти числа лежат — в одной строке или в разных. Иногда авторы условий и тестов кладут числа во вход как попало.
Задача. На питоне прочитать в список data числа из файла fin. Гарантируется, что в файле нет ничего, кроме чисел. Между числами могут встречаться любые пробельные символы.
Решение.
data = [int(x) for x in reduce(lambda x, y: x + y, [s.split() for s in fin.readlines()])]
Если начинающим питонистам нужны разъяснения — спрашивайте в комментариях.
def tokens(f):
for line in f:
for token in line.split():
yield token
Мы похожим образом пишем ввод на яве (реализем nextToken, nextInt и т. д.), получается вполне удобно и незатратно в плане памяти