使用 Python 獲取給定字串中大寫字元的索引


在 Python 中,我們可以使用列表推導式、for 迴圈、正則表示式等方法來獲取給定字串中大寫字元的索引。查詢大寫字元的索引在文字分析和處理中非常有用。在本文中,我們將探討獲取給定字串中大寫字元索引的不同方法。

方法一:使用列表推導式

使用列表推導式,我們可以遍歷字串中的字元,使用isupper()方法檢查它們是否是大寫字母,並將它們的索引儲存在一個列表中。這提供了一種簡潔高效的方法來實現所需的結果。

演算法

  • 初始化一個空列表來儲存索引。

  • 使用 enumerate() 遍歷字串中的每個字元。

  • 使用 isupper() 檢查字元是否是大寫字母。

  • 如果是大寫字母,則將其索引新增到列表中。

  • 列印索引列表。

語法

indices = [index for index, char in enumerate(string) if char.isupper()]

在這裡,我們使用列表推導式來遍歷字串字元並獲取它們的大寫字母索引。enumerate() 函式用於從字串中同時檢索索引和字元。

示例

在下面的示例中,字串 "Hello World" 包含兩個大寫字元:'H' 和 'W'。透過應用列表推導式,我們遍歷字串中的每個字元,並使用isupper()方法檢查它是否是大寫字母。如果是,我們將它的索引儲存在 indices 列表中。最後,我們列印索引列表。

string = "Hello World"
indices = [index for index, char in enumerate(string) if char.isupper()]
print(indices)

輸出

[0, 6]

方法二:使用 for 迴圈

透過將 for 迴圈與 enumerate() 函式結合使用,此方法遍歷字串中的字元,使用isupper()檢查它們是否是大寫字母,並將它們的索引新增到列表中。它提供了一種易於理解的方法來獲取大寫字元的索引。

演算法

  • 初始化一個空列表來儲存索引。

  • 使用 for 迴圈和 enumerate() 遍歷字串中的每個字元。

  • 使用 isupper() 檢查字元是否是大寫字母。

  • 如果是大寫字母,則將其索引新增到列表中。

  • 列印索引列表。

語法

indices = []
for index, char in enumerate(string):
    if char.isupper():
        indices.append(index)

在這裡,我們使用 for 迴圈結合 enumerate() 函式來遍歷字串字元。我們使用 isupper() 檢查每個字元是否是大寫字母,如果是,則將其索引新增到 indices 列表中。

示例

在下面的示例中,字串 "Python Is Great" 包含三個大寫字元:'P'、'I' 和 'G'。使用 for 迴圈,我們遍歷字串中的每個字元。如果字元是大寫字母,我們將它的索引新增到 indices 列表中。最後,我們列印索引列表。

string = "Python Is Great"
indices = []
for index, char in enumerate(string):
    if char.isupper():
        indices.append(index)
print(indices)

輸出

[0, 7, 10]

方法三:使用正則表示式 (re 模組)

此方法利用 Python 中的re模組,允許基於模式的搜尋。透過使用re.finditer()函式和正則表示式模式 [A-Z],它識別字符串中的大寫字元並使用 start() 方法檢索它們的索引。

演算法

  • 匯入 re 模組。

  • 使用 re.finditer() 使用正則表示式模式 [A-Z] 查詢所有大寫字元的匹配項。

  • 遍歷 re.finditer() 返回的匹配物件。

  • 使用每個匹配物件的 start() 方法獲取匹配項的索引。

  • 將每個索引新增到索引列表中。

  • 列印索引列表。

語法

import re
indices = [m.start() for m in re.finditer(r'[A-Z]', string)]

在這裡,我們匯入 re 模組,它提供對正則表示式的支援。我們使用 finditer() 函式使用正則表示式模式 [A-Z] 搜尋字串中的大寫字元。返回的匹配物件的 start() 方法用於獲取每個匹配項的索引。

示例

在下面的示例中,字串"OpenAI's ChatGPT is Amazing"包含四個大寫字元:'O'、'A'、'C' 和 'G'。透過使用re.finditer()函式和正則表示式模式 [A-Z],我們找到所有匹配項並使用start()方法獲取它們的索引。最後,我們列印索引列表。

import re
string = "OpenAI's ChatGPT is Amazing"
indices = [m.start() for m in re.finditer(r'[A-Z]', string)]
print(indices)

輸出

[0, 4, 5, 9, 13, 14, 15, 20]

結論

在本文中,我們討論瞭如何使用 Python 中的不同方法來獲取給定字串中大寫字元的索引。我們討論了三種方法:列表推導式、for 迴圈和正則表示式。每種方法都提供了一種獨特的方法,允許開發人員選擇最適合其需求的方法。

更新於:2023年7月17日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告