首页 > 解决方案 > 是否有一个 Python 函数可以一次性计算一个单词中的所有项目?

问题描述

我正在尝试将一个字符串编码为一个新字符串,如果字符只出现一次(在原始字符串中),则使用 '(' 和 ')' 字符出现多次(在原始字符串中)。我的问题是当我遍历字符串时,有时重复的字符只计为 1。我肯定走错了路。

我试图做的是用 if else 语句做一个嵌套的 for 循环,我将在下面提供我的代码。

def duplicate_encode(word):
    replace = [')' if word.count(i) > 1 else '(' for i in word]
    strreplace = ''.join(replace)
    print(strreplace)

a = input("Insert string here: ")
duplicate_encode(a)

最值得注意的例子是字符串“Success”。结果应该是')())())',而我得到的是'(())())'。我也尝试过另一种方式,在计算字母时使用内部打印,第一个“S”始终计为 1,而最后两个“s”计为 2。

标签: pythonpython-3.xalgorithm

解决方案


如果您希望字符不区分大小写,请在循环之前将输入字符串转换为一种大小写。

def duplicate_encode(word):
    word = word.lower()
    replace = [')' if word.count(i) > 1 else '(' for i in word]
    strreplace = ''.join(replace)
    print(strreplace)

推荐阅读