Я использую map (), чтобы применить функцию x к списку элементов. map () возвращает итератор, дающий результаты. Однако функция X уже выдает значение, а не возвращает. Мне нужно использовать yield только один раз.
def x(line):
columns = line.strip().split('\t')
yield columns
values = [ 'a\tb\tc\td\n',
'g\tc\tq\tm\n',
's\tp\to\td\n'
]
iters = map(x, values)
for i in iters:
print(next(i))
это вывод
['a', 'b', 'c', 'd']
['g', 'c', 'q', 'm']
['s', 'p', 'o', 'd']
Код работает, и у меня нет ошибок. Тем не менее, я думаю, что это перебор, так как я «даю» результат два раза.
Мне любопытно узнать, стоит ли вместо этого менять функцию x с помощью ключевого слова return.