find函数python
Python中的find函数:字符串查找必备利器
Python作为一门高级编程语言,其内置函数库非常丰富,其中字符串操作函数也是必不可少的一部分。而在字符串操作函数中,find函数是一个非常重要的函数,它可以用于查找字符串中的子串,并返回其在字符串中的位置。
find函数的基本语法如下:
`python
str.find(sub[, start[, end]])
其中,str表示要查找的字符串,sub表示要查找的子串,start和end表示查找的起始位置和结束位置(可选参数,默认为0和字符串长度)。函数返回的是子串在字符串中第一次出现的位置,如果没有找到则返回-1。
下面我们来看一些find函数的使用场景和相关问题。
## 查找字符串中的单词
在处理文本数据时,我们常常需要查找字符串中的某个单词。这时我们可以使用find函数来查找单词的位置,如下所示:
`python
str = "hello world, welcome to python"
pos = str.find("world")
print(pos) # 输出6
在上面的代码中,我们查找字符串str中的单词"world",并返回其在字符串中的位置。由于"world"位于字符串的第7个位置,因此返回值为6(从0开始计数)。
## 查找字符串中的多个子串
有时候我们需要查找字符串中的多个子串,这时我们可以使用循环来遍历所有的子串,如下所示:
`python
str = "hello world, welcome to python"
subs = ["world", "python"]
for sub in subs:
pos = str.find(sub)
print(pos)
在上面的代码中,我们遍历了字符串str中的两个子串"world"和"python",并分别输出它们在字符串中的位置。由于"world"位于字符串的第7个位置,"python"位于字符串的第22个位置,因此输出结果为:
22
## 查找字符串中的重复子串
有时候我们需要查找字符串中的重复子串,这时我们可以使用循环来遍历字符串中的所有子串,并统计它们的出现次数,如下所示:
`python
str = "hello world, welcome to python"
subs = set(str.split())
for sub in subs:
pos = str.find(sub)
count = 0
while pos != -1:
count += 1
pos = str.find(sub, pos + 1)
if count > 1:
print(sub, count)
在上面的代码中,我们首先使用split函数将字符串str拆分成单词,然后遍历所有的单词,统计它们在字符串中的出现次数。由于"hello"和"to"只出现了一次,因此不会被输出,而"world"和"python"分别出现了一次和两次,因此会被输出:
world 1
python 2
## 查找字符串中的所有子串
有时候我们需要查找字符串中的所有子串,这时我们可以使用循环来遍历字符串中的所有子串,并将它们存储到一个列表中,如下所示:
`python
str = "hello world, welcome to python"
subs = []
for i in range(len(str)):
for j in range(i + 1, len(str) + 1):
sub = str[i:j]
subs.append(sub)
print(subs)
在上面的代码中,我们使用两个循环来遍历字符串str中的所有子串,并将它们存储到列表subs中。由于字符串str的长度为28,因此总共会有28+27+...+1=406个子串,输出结果如下所示(部分结果):
['h', 'he', 'hel', 'hell', 'hello', 'e', 'el', 'ell', 'ello', 'l', 'll', 'llo', 'lo', 'o', 'or', 'ord', 'ord,', 'rd', 'rd,', 'd', 'd,', ',', ', ', ' w', 'we', 'wel', 'welc', 'welco', 'welcom', 'welcome', 'e', 'el', 'elc', 'elco', 'elcom', 'elcome', 'l', 'lc', 'lco', 'lcom', 'lcome', 'c', 'co', 'com', 'ome', 'm', 'me', 'e', ' to', 'to ', 't', 'to', 'o', ' p', 'py', 'pyt', 'pyth', 'pytho', 'python', 'y', 'yt', 'yth', 'ytho', 'ython', 't', 'th', 'tho', 'thon', 'h', 'ho', 'hon', 'o', 'n']
## 查找字符串中的子串并替换
有时候我们需要查找字符串中的某个子串,并将其替换成另一个字符串。这时我们可以使用replace函数来完成替换操作,如下所示:
`python
str = "hello world, welcome to python"
str = str.replace("world", "Python")
print(str) # 输出hello Python, welcome to python
在上面的代码中,我们查找字符串str中的子串"world",并将其替换成"Python"。由于replace函数会返回一个新的字符串,因此我们需要将其重新赋值给变量str。
## 查找字符串中的子串并删除
有时候我们需要查找字符串中的某个子串,并将其删除。这时我们可以使用replace函数来完成删除操作,如下所示:
`python
str = "hello world, welcome to python"
str = str.replace("world, ", "")
print(str)# 输出hello welcome to python
在上面的代码中,我们查找字符串str中的子串"world, ",并将其删除。由于replace函数会返回一个新的字符串,因此我们需要将其重新赋值给变量str。
到这里,我们已经介绍了find函数在Python中的基本用法和一些常见的应用场景。find函数还有很多其他的用法和技巧,如果你对此感兴趣,可以继续深入学习。