📅  最后修改于: 2023-12-03 15:34:10.718000             🧑  作者: Mango
在 Python 中,我们可以使用 split()
方法将字符串按照指定分隔符进行拆分,但如果我们想要在特定子字符串之后进行拆分,该怎么办呢?
以下是两种方法来实现该需求:
我们可以先使用 find()
方法找到子字符串的位置,然后再使用 split()
方法进行拆分。
string = 'Python is an interpreted, high-level, general-purpose programming language.'
delimiter = 'high-level'
index = string.find(delimiter)
if index != -1:
result = string[:index].split()
result.append(string[index+len(delimiter):])
else:
result = string.split()
print(result)
在上述代码中,我们先使用 find()
方法找到子字符串 'high-level'
的位置,如果找到,则取子字符串之前的部分进行 split()
操作,并将子字符串之后的部分添加到结果列表中。如果未找到子字符串,则对整个字符串进行 split()
操作。
该方法的输出结果为:
['Python', 'is', 'an', 'interpreted,', 'high-level,', 'general-purpose', 'programming', 'language.']
在 Python 3.x 中,我们可以使用 rindex()
方法找到最后一个子字符串的位置,然后再使用 split()
方法进行拆分。
string = 'Python is an interpreted, high-level, general-purpose programming language.'
delimiter = 'high-level'
try:
index = string.rindex(delimiter)
result = string[:index].split() + [string[index+len(delimiter):]]
except ValueError:
result = string.split()
print(result)
在上述代码中,我们使用 try-except
语句来处理未找到子字符串的情况。如果找到了子字符串,则将子字符串之前的部分进行 split()
操作,并将子字符串之后的部分添加到结果列表中。如果未找到子字符串,则对整个字符串进行 split()
操作。
该方法的输出结果同样为:
['Python', 'is', 'an', 'interpreted,', 'high-level,', 'general-purpose', 'programming', 'language.']
以上就是在 Python 中按照子字符串进行拆分的两种方法,适用于不同版本的 Python。