如何在 Python 中反转字符串辅音而不影响其他元素

pythonserver side programmingprogramming更新于 2023/12/29 0:57:00

字符串辅音是指在发音一串字符或字母时产生的非元音。在本文中,我们将研究如何使用 Python 中的以下 2 种方法仅反转字符串中的辅音而不影响其他元素的位置:

  • 使用 append() 和 join() 函数

  • 使用 pop() 函数和字符串连接

示例

反转前:tutorialspoint
反转后:tunopiaslroitt

算法(步骤)

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

  • 函数 checkConsonant(char) 被定义为检查字符是否为辅音。如果字符不存在于元音列表 (['a', 'e', 'i', 'o', 'u']) 中,则返回 True,否则返回 False。

  • 函数 consonantReversing(inputString) 被定义为反转输入字符串中的辅音。

  • 使用 list(inputString) 将输入字符串转换为字符列表。

  • 创建一个空列表 consonantsList 来存储辅音。

  • 使用 for 循环遍历字符列表。对于每个字符,调用 checkConsonant(char) 函数来检查它是否是辅音。如果是辅音,则将其附加到 consonantsList 中。

  • 变量 l 设置为 consonantsList 的长度减 1。

  • 开始替换输入字符串中的辅音。对于列表中的每个字符,如果它是辅音(使用 checkConsonant() 检查),则使用索引 l 将其替换为 consonantsList 中的相应辅音。然后,l 递减。

  • 最后,使用""join(new_list) 将修改后的字符列表重新合并为字符串,并返回结果。

  • 使用不同的输入字符串两次调用 consonantReversing() 函数,以演示辅音的替换。

使用 append() 和 join() 函数

以下代码包含一个名为 consonantReversing 的函数,该函数以字符串作为输入,反转字符串中的辅音,同时保持元音不变。它通过识别输入字符串中的辅音、将它们存储在列表中,然后以相反的顺序用列表中的辅音替换字符串中的辅音来实现此目的。然后返回修改后的字符串作为输出。

示例

# 创建一个函数来检查字符串字符
# 是否为辅音
def checkConsonant(char):
    # 元音列表
    vowels = ['a', 'e', 'i', 'o', 'u']

    # 检查字符是否不是元音
    if char not in vowels:
        # 如果条件为真,则返回 true
        return True
  # 否则返回 false
    return False

# 创建另一个函数来反转字符串的辅音
def consonantReversing(inputString):

    # 将输入字符串转换为字符列表
    new_list = list(inputString)
    
    # 创建一个用于存储辅音的空列表
    consonantsList = []
    # 遍历上述字符列表
    for char in new_list:
        # 检查当前字符是否为辅音
        # 通过调用 checkConsonant 函数
        if checkConsonant(char):
            # 将该字符附加到辅音列表
            # 如果条件为真
            consonantsList.append(char)
    l = len(consonantsList)-1

    # 将提供的字符串中的辅音替换为辅音列表中的元素
    #,从列表中的最后一个元素开始。
    for m in range(len(new_list)):
        if checkConsonant(new_list[m]):
            new_list[m] = consonantsList[l]
            l -= 1
    return "".join(new_list)

# 调用上述 consonantReversing() 函数
# 将输入字符串作为参数传递给它。
print(consonantReversing("tutorialspoint"))
# 检查其他字符串
print(consonantReversing("python codes"))

输出

执行时,上述程序将生成以下输出

tunopiaslroitt
sdc onhtoyep

使用 pop() 函数和字符串连接

在下面的示例中,替代方法在遍历字符串时直接识别输入字符串中的辅音,而无需使用其他函数。它将辅音存储在列表中,并在第二次迭代期间以相反的顺序替换它们。其余字符(包括非辅音)按原样附加到输出字符串中。

示例

def consonantReversing(inputString):
    consonants = [c for c in inputString if c.lower() in 'bcdfghjklmnpqrstvwxyz']
    outputString = ""
    
    for char in inputString:
        if char.lower() in 'bcdfghjklmnpqrstvwxyz':
            outputString += consonants.pop()
        else:
            outputString += char
    
    return outputString

# 示例用法:
print(consonantReversing("tutorialspoint"))
print(consonantReversing("python codes"))

输出

tunopiaslroitt
sdcnoh toyep

结论

总之,提供的 Python 程序成功地反转了给定字符串中的辅音,而不会影响其他元素的位置。它采用了两种不同的方法:一种使用 append() 和 join() 函数,另一种使用 pop() 函数和字符串连接。这两种方法都能有效地识别和反转辅音,同时保留字符串中的元音和其他字符。这些方法提供了灵活性,可以应用于需要辅音反转的各种场景。


相关文章