Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在单循环中附加列表的Pithonic方法_Python_List - Fatal编程技术网

Python 在单循环中附加列表的Pithonic方法

Python 在单循环中附加列表的Pithonic方法,python,list,Python,List,我处理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 t

我处理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']
用新数据附加我的列表并返回

现在的代码是:

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 = [[[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 ]

基本上,您对
table=[[]]
所说的是“我有一个包含空列表的列表”

使用
table.remove([])
您正在删除该空列表。这并没有给你的程序增加任何东西


您可以避免调用
table。如果调用
table=[]
,请删除([])


您在for循环中附加的列表不受此影响,问题/警告也应该消失。

您可以避免调用
table。如果调用
table=[],请删除([])
,谢谢!现在我离简单代码又近了一步。警告也消失了,看起来这解决了问题。这样我得到了3d列表,它需要更多的代码来进一步处理。至少会有两个循环来提取我的数据。不过还是谢谢你。