Питонический способ добавления списка в один цикл

Я обрабатываю файл Word, собирающий некоторую информацию, хранящуюся внутри таблицы. Первоначально у меня было это:

table = [[app.ActiveDocument.Tables(1).Cell(x, y).Range.Text[:-1] for y in [3, 4]] for x in range(13, app.ActiveDocument.Tables(1).Rows.Count-2)] 

Здесь я получаю список 2d, чтобы пройти дальше. Но иногда я получаю набор таблиц в одном файле. Структура всегда одна и та же, поэтому я могу использовать

 table += ['here's the same list as above with diffrent index in Tables'] 

добавить свой список с новыми данными и return .

Так что код теперь:

 table = [[]] for tab in app.ActiveDocument.Tables: table += [[tab.Cell(x, y).Range.Text[:-1] for y in [3, 4]] for x in range(13, tab.Rows.Count-2)] table.remove([]) 

но pyCharm говорит, что выбор списка – не «хороший» способ заставить все работать. Есть ли более элегантный способ создания списка и одновременно добавить его в цикл? Я не вижу способа, чтобы Python знал, что я работаю со списком элементов, и я не знаю, как упаковать этот цикл в начальное создание table .

В основном то, что вы говорите с table = [[]] это «У меня есть список, содержащий пустой список».

И с table.remove([]) вы table.remove([]) этот пустой список. Это ничего не добавляет к вашей программе.

Вы можете избежать вызова table.remove([]) если вы используете table = [] .

Списки, которые вы добавляете в цикле for, не затрагиваются этим, и проблема / предупреждение также должны быть удалены.

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

 table = [[[tab.Cell(x, y).Range.Text[:-1] for y in [3, 4]] for x in range(13, tab.Rows.Count-2) ] for tab in app.ActiveDocument.Tables ]