python - 是否有一个 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。
解决方案
如果您希望字符不区分大小写,请在循环之前将输入字符串转换为一种大小写。
def duplicate_encode(word):
word = word.lower()
replace = [')' if word.count(i) > 1 else '(' for i in word]
strreplace = ''.join(replace)
print(strreplace)
推荐阅读
- reactjs - 如何在 Jestjs 中为验证方法创建测试用例
- java - 如何在 Java 中使用 DOMParser 获取包含 html 标签的完整节点文本值
- postgresql - 致命:由于 postmaster 意外退出而终止连接
- c# - 根据 Fluent Validation 返回自定义响应
- jquery - 你如何使用jquery来改变aframe中对象的位置?
- python - 无法为每个服务器 discord.py 获取自定义管理员角色
- sql - 雪花 - 每次合并时会自动创建哪种类型的舞台表?
- java - 在将变量传递给函数之前递增变量与在函数内部递增变量有什么区别?
- reactjs - 将 brotli 与 AWS Cloudfront + S3 一起使用
- mysql - 返回只有单个值的行 - MySQL