我有一个预先存在的函数来解析html表的数据。
def parse_table(lines):
.......
我希望能够重用这个功能,但为了做到这一点,我必须提供'lines'变量,它是多行文本字符串的格式,如下所示:
a
b
c
d
e
f
.....
其中所有字母都是文本字符串。
到目前为止,我已经能够将表解析为列表列表(每个列表代表一行),如下所示:
[[u'a',u'b',u'c'],[u'd',u'e',u'f'],...]
如何将列表列表转换为所需格式?
答案 0 :(得分:3)
快速单行将产生你的字符串。
table = [[u'a1',u'b2',u'c3'],[u'd4',u'e5',u'f6'],...]
lines = "\n".join(sum(table, [])) + "\n" # if you want a trailing newline
如果您不喜欢使用sum
通过“添加”来展平列表列表,则可以使用列表推导。 (这也比使用sum
要快得多。)
lines = "\n".join([item for row in table for item in row])
最快的技术似乎是
lines = "\n".join(list(itertools.chain.from_iterable(table))
几乎是列表推导的两倍,但在Python 2.6中不可用(尽管itertools.chain(*table))
可以在其位置上运行)。