Просто наткнулся на этот старый вопрос, и я думаю, что у меня есть лучшее решение.Обычно, если вы хотите вложить понимание списка («добавить» каждый список), вы думаете об обратном (не для цикла).Это не то, что вам нужно:
>>> import re
>>> lines = ["hello world", "second line", "third line"]
>>> [[word for word in re.split(r'\s+', line)] for line in lines]
[['hello', 'world'], ['second', 'line'], ['third', 'line']]
Однако, если вы хотите «расширить» вместо «добавления» списки, которые вы генерируете, просто пропустите дополнительный набор квадратных скобок и отмените своициклы (возвращая их в «правильном» порядке).
>>> [word for line in lines for word in re.split(r'\s+', line)]
['hello', 'world', 'second', 'line', 'third', 'line']
Мне кажется, это более Pythonic решение, так как оно основано на логике обработки списка, а не на какой-то встроенной функции со случайной задницей,Каждый программист должен знать, как это сделать (особенно те, кто пытается изучать Лисп!)