我有一个字符串,如下所示:
result = """The following table provides the details.
acquired, by major class:
(US$ in millions) Customer relationships 15year $265
There is another line without space here.
Another table starts here:
(USS in millions) 2018 2017
Income (loss) from continuing operations $298 $129"""
我必须把所有包含3个以上空格的句子放到一个列表中。以下是我迄今为止尝试过的一些东西:
lines = result.splitlines()
table_list = []
for i in range(len(lines)):
if re.search(r' {3,}', lines[i]):
table_list.append(lines[i])
上述代码的结果输出:
['(US$ in millions) Customer relationships 15year $265','(USS in millions) 2018 2017','Income (loss) from continuing operations $298 $129']
预期输出:
[['(US$ in millions) Customer relationships 15year $265'],['(USS in millions) 2018 2017','Income (loss) from continuing operations $298 $129']]
输出条件的进一步解释:预期输出应为列表列表。当遍历每一行时,如果有连续的句子在两个单词之间包含3个或更多空格,那么所有这些行都应该是主列表中相同列表的一部分。如果一行在两个单词之间不包含3个或更多空格,则会断开链。如果另一行在两个单词之间包含3个或更多空格,则该行将成为主列表中新列表的一部分
将
itertools.groupby
与re.findall
一起使用:输出:
相关问题 更多 >
编程相关推荐