在 Python 中的字符串中查找字符

Manav Narula 2023年1月30日
  1. 使用 find() 函数查找字符串中字符的位置
  2. 使用 rfind() 函数在字符串中查找字符的位置
  3. 使用 index() 函数查找字符串中字符的位置
  4. 使用 for 循环查找字符串中字符的位置
在 Python 中的字符串中查找字符

字符串是字符的集合。字符串中的每个字符都有一些可用于访问它的特定位置。在本教程中,我们将讨论如何在字符串中查找字符的位置。

使用 find() 函数查找字符串中字符的位置

find() 函数返回子字符串的位置。我们还可以指定要搜索的起点和终点位置(默认情况下,起点为 0,终点为字符串的长度)。

在下面的代码中,我们将使用此函数查找字符串中字符的位置。

s = "python is fun"
c = "n"
print(s.find(c))

输出:

5

请注意,它返回字符串中遇到的字符的第一个位置。关于此函数要记住的另一件事是,当字符串中不存在给定的子字符串时,它将返回-1。

使用 rfind() 函数在字符串中查找字符的位置

该函数类似于 find() 函数,唯一的区别是它返回子字符串的最后位置。

例如,

s = "python is fun"
c = "n"
print(s.rfind(c))

输出:

12

使用 index() 函数查找字符串中字符的位置

index() 函数的用法类似于 find() 函数,以返回字符串中字符的位置。像 find() 函数一样,它也返回字符串中字符的第一个匹配项。

例如,

s = "python is fun"
c = "n"
print(s.index(c))

输出:

5

index()find() 函数之间的区别在于,当字符串中缺少所需的字符时,index() 函数将返回 ValueError

使用 for 循环查找字符串中字符的位置

在这种方法中,我们可以注意到字符串中字符的每次出现。我们遍历字符串并分别比较每个字符。显示找到匹配项的每个位置,并将其存储在不同的变量中。

以下代码实现了此逻辑。

s = "python is fun"
c = "n"
lst = []
for pos, char in enumerate(s):
    if char == c:
        lst.append(pos)
print(lst)

输出:

[5, 12]

我们使用 enumerate() 函数,因为它使迭代更加容易,并为字符串的每个字符分配了一个计数器变量。

我们还可以使用列表推导方法来实现此方法,该方法被认为更快捷,更简洁。

例如,

s = "python is fun"
c = "n"
print([pos for pos, char in enumerate(s) if char == c])

输出:

[5, 12]
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python String