📅  最后修改于: 2023-12-03 15:23:34.912000             🧑  作者: Mango
当处理字符串时,我们经常需要将字符串拆分成一个列表。在 Python 中,我们可以使用内置函数 split()
来轻松地完成这个任务。但是,如果没有 split()
函数,我们该如何实现字符串拆分呢?下面,我将为您介绍两种在没有 split()
函数的情况下拆分字符串的方法。
我们可以使用 for 循环遍历字符串中的每个字符,并将它们添加到列表中。当我们遇到分隔符时,我们可以创建一个新字符串并将其附加到列表中。让我们看看这个方法的代码示例:
string = "hello world, my name is John"
delimiter = " "
result = []
temp = ""
for char in string:
if char == delimiter:
result.append(temp)
temp = ""
else:
temp += char
result.append(temp)
print(result)
在上面的代码中,我们首先定义了一个字符串 string
和一个分隔符 delimiter
。然后,我们创建一个空列表 result
和一个空字符串 temp
,用于存储拆分后的字符串。
接下来,我们使用 for 循环遍历字符串中的每个字符。如果当前字符与分隔符相同,则说明我们已经遍历完了一个单词,将其添加到列表中,并将 temp
重置为空字符串。否则,我们将当前字符添加到 temp
中。最后,我们需要将最后一个单词添加到列表中。
运行上述代码,输出结果如下:
['hello', 'world,', 'my', 'name', 'is', 'John']
我们可以使用字符串切片来获取子字符串并将它们添加到列表中。对于第一个子字符串,我们可以使用字符串的开头和分隔符的位置来获取。对于后面的子字符串,我们可以使用两个分隔符的位置来获取。让我们看看这个方法的代码示例:
string = "hello world, my name is John"
delimiter = " "
result = []
start = 0
while True:
end = string.find(delimiter, start)
if end == -1:
result.append(string[start:])
break
result.append(string[start:end])
start = end + len(delimiter)
print(result)
在上面的代码中,我们首先定义了一个字符串 string
和一个分隔符 delimiter
。然后,我们创建一个空列表 result
,用于存储拆分后的字符串。我们还创建了一个变量 start
,用于指向当前子字符串的开头位置。
接下来,我们使用 while 循环一次次地找到每个分隔符的位置,并使用字符串切片来获取子字符串。如果找不到分隔符,则说明我们已经到了字符串的末尾,将最后一个子字符串添加到列表中并跳出循环。
运行上述代码,输出结果与前面的方法相同:
['hello', 'world,', 'my', 'name', 'is', 'John']
现在,您已经学会了在没有 split()
函数的情况下,在 Python 中拆分字符串的两种方法。无论是哪种方法,在处理大量字符串时,它们都可能会非常耗时。因此,我建议您在合适的情况下尽可能使用内置函数 split()
来完成字符串拆分任务。