Выражение генератора не работает должным образом при использовании в конвейереPython

Программы на Python
Гость
Выражение генератора не работает должным образом при использовании в конвейере

Сообщение Гость »

Я экспериментирую с выражениями-генераторами, чтобы лучше их понять.
У меня есть текстовый файл, и я ожидал, что следующий код будет печатать каждое слово в каждой строке файла отдельно:

Код: Выделить всё

lines = open("file.txt")
split_lines = (line.split() for line in lines)
words = (word for word in split_lines)
for word in words:
print(word)
Один из способов исправить это, чтобы сделать то, что я намеревался, — это отказаться от выражения генератора слов и просто выполнить вложенный цикл для обхода созданного списка:

Код: Выделить всё

lines = open("file.txt")
split_lines = (line.split() for line in lines)
for split_line in split_lines:
for word in split_line:
print(word)
Но мне все еще интересно, в чем заключается пробел в моем понимании, и я не понимаю, почему первый вариант не работает (похоже, что выражение генератора слов фактически ничего не делает и просто оставляет мне тот же список, что и в предыдущей строке).

Подробнее здесь: https://stackoverflow.com/questions/781 ... a-pipeline

Вернуться в «Python»