Python 通过循环打开二维列表

Python 通过循环打开二维列表,python,list,lxml,Python,List,Lxml,我需要用动态长度来解包二维列表(列表列表列表)。整个任务是在lxml框架的帮助下,从我的列表中形成一个功能齐全的HTML表 作为主干,我为我的任务编写了以下代码: page = ( E.html( E.body( E.table( E.tr( E.th(E.div("header1")), ... E

我需要用动态长度来解包二维列表(列表列表列表)。整个任务是在lxml框架的帮助下,从我的列表中形成一个功能齐全的HTML表

作为主干,我为我的任务编写了以下代码:

 page = (
    E.html(
        E.body(
        E.table(
                E.tr(
                    E.th(E.div("header1")),
                      ...
                    E.th(E.div("header40")),
                    ),
                *[E.tr(
                     *[
                        E.td(str(col)) for col in p_list[1] <<- how to put N here???
                     ]
                    ) for row in range(len(p_list))]
                , border="2"
                )
            )
        )
    )
现在,此代码只能输出相同的
p_列表的
N次,并且只能与硬编码的行号一起工作,但是如果我想动态指定它以输出整个表呢


无法理解如何执行此操作。

p\u列表[1]
替换为
p\u列表[row]
。最好不要使用
范围

*[E.tr(
   *[ E.td(str(col)) for col in row ]
) for row in p_list ]

它抛出
类型错误:列表索引必须是整数或切片,而不是最后一行的列表。请显示完整的回溯。
回溯(最近一次调用):文件“/media/Downloads/functions.py”中的第5行“/media/Downloads/functions.py”,第206行,to_html),用于p_list]File“/media/Downloads/functions.py”中的第206行,in)对于p_list]TypeError中的行:列表索引必须是整数或片,而不是列表
您是否仅对最后一行进行了更改,而不是对上一行进行了更改?
*[E.tr(
   *[ E.td(str(col)) for col in row ]
) for row in p_list ]