我有一个字符串列表 s
,如下所示:
s = ['Hello', 'world', '!', 'How', 'are', 'you', '?', 'Have', 'a', 'good', 'day', '.']
我希望将此列表拆分为子列表。无论何时出现
?!.\n
,都会形成一个新的子列表,如下所示:final = [['Hello', 'world', '!'],
['How', 'are', 'you', '?'],
['Have', 'a', 'good', 'day', '.']]
我尝试过这个:
x = 0
for i in range(len(s)):
if s[i] in ('!','?','.','\n'):
final = s[x: x+i]
x = i+1
“final” 存储了我的输出结果,但是结果不如预期。有什么建议吗?
enumerate
来获取索引,而且通常最好使用set
进行成员测试,因为它具有常数时间,而元组或列表中的线性搜索则没有。 - Copperfieldenumerate
更适合索引,但会改变代码的结构。我想尽可能保持原始结构。 - mkiever