在 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