Допустим, у нас есть 2 последовательных вложенных цикла, таких как:
for p in doc.paragraphs:
for r in p.runs:
s = do_something(r)
if something_else(s, r):
r.text = another_function(s)
for table in doc.tables:
for col in table.columns:
for cell in col.cells:
for p in cell.paragraphs:
for r in p.runs:
s = do_something(r)
if something_else(s, r):
r.text = another_function(s)
Есть ли способ сгруппировать их в один l oop, не создавая новую функцию? ( В большинстве случаев создание выделенной функции и вызов ее в каждой вложенной-l oop, чтобы избежать дублирования кода, является лучшим, но здесь я хотел бы изучить другие способы)
Единственное решение, которое у меня есть найдено:
for r in [run for p in doc.paragraphs for run in p.runs] + \
[run for table in doc.tables for col in table.columns for cell in col.cells for p in cell.paragraphs for run in p.runs]:
s = do_something(r)
if something_else(s, r):
r.text = another_function(s)
Есть ли более чистый способ сгруппировать 2 итератора вместе?