用于替换字符串中每个第 N 个字符的 Python 程序

pythonserver side programmingprogramming更新于 2023/12/28 22:12:00

在 Python 中替换字符串的第 n 个字符是指用新字符替换特定索引位置的字符的过程。这可以通过将字符串转换为可变数据类型(例如列表)、替换所需字符并将其转换回字符串来实现。它允许根据位置修改字符串中的特定字符

示例

假设我们已获取输入字符串、K 符号和第 N个索引值。现在,我们将使用上述方法将字符串中的每个第 N 个索引替换为给定的 K 符号。

输入

inputString = "hello tutorialspoint python users"
k = '#'
N = 4

输出

hell# tu#ori#lsp#int#pyt#on #ser#

在上面的输入字符串中,字符串中的每 4 个索引字符都替换为 K,即 #。

使用的方法

以下是完成此任务的各种方法:

  • 使用 for 循环和 enumerate() 函数

  • 使用生成器表达式、join() 和enumerate() 函数

  • 使用 list() 函数

语法

enumerate(iterable, start=0)

参数

  • iterable- 可以是任何支持迭代的序列/对象/可迭代对象

  • start- enumerate() 从此值开始计数。如果未指定起始值,则使用值 0。

join(): join() 是 Python 中的字符串函数,用于连接由字符串分隔符分隔的序列元素。此函数连接序列元素以转换为字符串。

separator.join(iterable)

list() 函数:将序列/可迭代对象转换为列表。

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤 –。

  • 创建一个变量来存储输入字符串

  • 打印输入字符串。

  • 创建另一个变量来存储要替换的输入 k 符号

  • 创建另一个变量来存储输入第 N个索引。

  • 初始化一个空字符串以存储结果字符串。

  • 使用 for 循环 遍历索引,使用 enumerate() 函数遍历输入字符串的元素。

  • 使用 if 条件 语句检查当前索引是否可以使用模运算符被第 N 个索引整除,以及它是否不等于 0。

  • 将 k 符号添加/连接到如果条件为 true,则返回每个第 N 个索引的结果字符串。

  • 否则,将元素添加到结果字符串中。

  • 将每个第 N 个索引替换为 k 符号后,打印结果字符串。

示例 1:使用 for 循环和 enumerate() 函数

以下程序在使用 for 循环和 enumerate() 函数将每个第 N 个索引替换为 k 符号后返回一个字符串

# 输入字符串
inputString = "hello tutorialspoint python users"
# 打印输入字符串
print("输入字符串: ", inputString)
# 输入 K 符号
k = '#'
# 输入第 N 个索引
N = 4
# 用于存储结果字符串的空字符串
resultantStr = ''
# 遍历索引、元素使用 enumerate() 函数对输入字符串进行
for index, element in enumerate(inputString):
  # 检查当前索引是否可以被第 N 个索引整除并且不等于 0
    if index % N == 0 and index != 0:
        # 如果条件为真,则将 k 符号添加到每个第 N 个索引的结果字符串中
        resultantStr = resultantStr + k
    else:
        # 否则将元素添加到结果字符串中
        resultantStr = resultantStr + element
# 打印结果字符串
print("将每个第 4 个索引替换为 #:\n 后的结果字符串", resultantStr)

输出

输入字符串:hello tutorialspoint python users
将每个第 4 个索引替换为 # 后的结果字符串:
hell# tu#ori#lsp#int#pyt#on #ser#

示例 2:使用生成器表达式、join() 和 enumerate() 函数

以下程序在使用生成器表达式、join() 和 enumerate() 函数将每个第 N 个索引替换为 k 符号后返回一个字符串 –

# 输入字符串
inputString = "hello tutorialspoint python users"
# 打印输入字符串
print("输入字符串:", inputString)
# 输入 K 符号
k = '#'
# 输入第 N 个索引
N = 4
# 将第 N 个字符替换为 k
resultantStr = ''.join(e if index % N or index == 0 else k for index,
        e in enumerate(inputString))
# 打印结果字符串
print("将每个第 4 个索引替换为 #:\n 后的结果字符串", resultantStr)

输出

输入字符串:hello tutorialspoint python users
将每个第 4 个索引替换为 # 后的结果字符串:
hell# tu#ori#lsp#int#pyt#on #ser#

示例 3:使用 list() 函数

以下程序在使用 list() 函数将每个第 N 个索引替换为 k 符号后返回一个字符串 –

# 输入字符串
inputString = "hello tutorialspoint python users"
# 打印输入字符串
print("输入字符串:", inputString)
# 输入 K 符号
k = '#'
# 输入第 N 个索引
N = 4
# 将输入字符串转换为字符列表
charsList = list(inputString)
# 用于存储结果字符串的空字符串
resultantStr = ""
# 遍历直到字符列表的长度
for index in range(0, len(charsList)):
  # 检查当前索引是否不等于 0 并且能被第 N 个索引整除
    if(index != 0 and index % N == 0):
        # 如果条件为真,则将 k 符号添加到每个第 N 个索引的结果字符串中
        resultantStr += k
    else:
        # 否则将当前索引处的值添加到结果字符串中
        resultantStr += inputString[index]
# 打印结果字符串
print("将每个第 4 个索引替换为 # 后的结果字符串:\n", resultantStr)

输出

输入字符串:hello tutorialspoint python users
将每个第 4 个索引替换为 # 后的结果字符串:
hell# tu#ori#lsp#int#pyt#on #ser#

结论

在 Python 中替换字符串的第 n 个字符涉及用新字符替换特定索引处的字符。这可以通过将字符串转换为可变数据类型(如列表)、修改所需字符并将其转换回字符串来实现。这种方法允许根据字符串的位置进行有针对性的修改,从而提供灵活性和控制力。通过理解和应用这种技术,可以在 Python 编程中有效地操作字符串。


相关文章