通过循环解压缩二维列表

问题描述 投票:0回答:1

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

使用this excellent answer作为主干后,我为我的任务找到了以下代码:

 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"
                )
            )
        )
    )

第一个E.tr是我桌子的标题,第二个*[E.trp_list列表中解压缩。该列表具有N个元素(也称为行),每个元素是由大约50个元素(也称为N行的列)组成的列表。

p_list被声明并填充如下:

p_list = list()
rows = table.iter('div')
p_list.append([c.text for c in rows])
rows = table.xpath("body/table")[0].findall("tr")
for row in rows[2:]:
   p_list.append([c.text for c in row.getchildren()])

现在这段代码只能输出相同的p_list行N次,并且仅适用于硬编码的行号,但如果我想动态指定它以输出整个表呢?

无法弄清楚如何做到这一点。

python list lxml
1个回答
1
投票

p_list[1]替换p_list[row]。更好的是,不要使用range

*[E.tr(
   *[ E.td(str(col)) for col in row ]
) for row in p_list ]
© www.soinside.com 2019 - 2024. All rights reserved.