Python编写字符串唯一字符前后拼接ASCII值函数的错误如何解决?
错误原因
- 去重逻辑完全失效:你使用结果列表
lis作为去重判断依据,但lis存储的是「ASCII值+字符+ASCII值」格式的拼接字符串,而你判断的是原单个字符是否在lis中,两者类型/内容完全不匹配,重复字符无法被过滤,会多次加入结果列表。 - 参数命名不规范:你使用Python内置字符串类型关键字
str作为参数名,会覆盖内置功能,属于错误写法。
修正方案
新增一个单独的集合存储已出现过的原字符,用来做去重判断,遍历字符的时候直接遍历输入字符串即可,不需要用下标循环。
修正后代码如下:
def function_name(input_str): res = [] seen = set() for char in input_str: if char not in seen: seen.add(char) ascii_code = ord(char) res.append(f"{ascii_code}{char}{ascii_code}") return res print(function_name("pythonbook"))
运行结果
['112p112', '121y121', '116t116', '104h104', '111o111', '110n110', '98b98', '107k107'],和预期输出完全一致。
内容的提问来源于stack exchange,提问作者kirihadinomoyet
相关产品推荐
相关产品推荐

