在 Python 中的索引处替换字符串中的字符

Vaibhhav Khetarpal 2023年10月10日
  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