在 Python 中的索引處替換字串中的字元

Vaibhhav Khetarpal 2023年1月30日 2021年12月4日
  1. Python 中使用字串切片替換字串中某個索引處的字元
  2. 在 Python 中使用列表替換字串中某個索引處的字元
  3. 在所有情況下將不同索引處的多個字元替換為相同字元
  4. 在所有情況下用不同的字元替換不同索引處的多個字元
在 Python 中的索引處替換字串中的字元

眾所周知,Python 中的字串是不可變的,因此無法在 Python 程式碼執行時直接對字串進行更改。但是,在某些情況下需要這樣做,並且可以通過不同的方式間接完成。

本教程演示瞭如何在 Python 中的特定索引處替換字串中的字元。

Python 中使用字串切片替換字串中某個索引處的字元

列表切片是解決編碼過程中遇到的一些問題的有效方法。冒號 (:) 運算子用於列表切片過程。可以在冒號運算子的幫助下指定詳細資訊或引數,例如 startfinishstep

以下程式碼使用字串切片來替換 Python 中某個索引處的字串中的字元。

stra = 'Meatloaf'
posn = 5
nc = 'x'

stra = string[:posn] + nc + string[posn+1:]
print(stra)

上面的程式碼提供了以下輸出:

Meatlxaf

解釋:

  • 要替換​​給定字串中指定位置的單個字元,通過拆分給定字串構成三個部分。
  • 中間部分只包含需要替換的字元。第一部分和最後一部分分別包含所選字元之前和之後的字元。
  • 然後使用簡單的 + 運算子將所有三個部分連線在一起。但是,不是包含所選字元的中間部分,而是連線需要替換的字元來代替它。

在 Python 中使用列表替換字串中某個索引處的字元

列表是 Python 提供的四種內建資料型別之一,它用於在單個變數中儲存多個專案。列表是有序的、可變的,並且有確定的數量。

在這個方法中,給定的字串首先被轉換成一個列表。之後,舊字元被指定索引處的新字元替換。最後,使用 join() 函式將列表項轉換為字串。

以下程式碼使用列表替換 Python 中某個索引處的字串中的字元。

stra = 'Meatloaf'
posn = 6
nc = 'x'
tmp = list(stra)
tmp[posn] = nc
stra = "".join(tmp)
print(stra)

上面的程式碼提供了以下輸出:

Meatloxf

這兩種方法可用於處理字串中的單個字元。繼續,我們現在將專注於替換多個指定索引處的字元。

在所有情況下將不同索引處的多個字元替換為相同字元

在這裡,我們將使用列表。當索引很少,並且需要將這些多個索引處的所有字元都替換為單個字元時,使用此方法。

為此,需要迭代給定列表中的所有索引,並且可以實現切片以替換每個找到的需要更改字元的索引。

當我們需要用單個字元替換多個索引處的字元時,以下程式碼使用列表切片。

stra = 'Meatloaf'
loi = [2, 4, 6]
nc = 'x'
res = ''

for i in loi:
    stra = stra[:i] + nc + stra[i+1:]

print(stra)

上面的程式碼提供了以下輸出:

Mextxoxf

在所有情況下用不同的字元替換不同索引處的多個字元

在這種情況下,不需要在所有索引中替換相同的字元。

為此,我們將使用字典而不是列表。字典與 hashmap 非常相似,並以 key:value 對的形式儲存輸入的資料。

為了用它們各自的替換替換所選索引中給出的所有字元,迭代所有建立的字典的 key:value 對。

以下程式碼將多個索引處的字元替換為其各自的替換。

stra = 'Meatloaf'
cr = {1: 'x',
      3: 'c',
      5: 'w'}

res = ''

for index, replacement in cr.items():
    stra = stra[:index] + cr[index] + stra[index + 1:]

print(stra)

上面的程式碼提供了以下輸出:

Mextcowf
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python String