Python处理字符串替换关键词及去除列表重复单词的问题求解
问题排查与解决方案
问题原因
- 你最终传入
set()的仍然是单个完整字符串,Python迭代字符串时默认按单个字符拆分,因此会出现按字母拆分的错误结果 - 中间拼接引号的操作没有实际意义,只是让字符串从视觉上看起来像多个带引号的元素,本质并没有转换成可按单词迭代的列表
修复方案
正确逻辑是先把原始字符串按逗号拆分为列表,逐个处理每个元素后再去重,最后格式化输出即可,修复后代码如下:
words = 'AZ:ABC,AZ:DEF,AZ:GHI,AZ:ABC-OO' # 按逗号拆分得到原始元素列表 raw_list = words.split(',') # 逐个处理每个元素:移除AZ:前缀、移除-OO后缀 processed_list = [item.replace('AZ:', '').replace('-OO', '') for item in raw_list] # 去重,如需保留原始出现顺序可替换为 unique_list = list(dict.fromkeys(processed_list)) unique_list = list(set(processed_list)) # 格式化为要求的输出样式 result = ','.join(f"'{word}'" for word in unique_list) print(result)
运行后输出即为你期望的:'ABC','DEF','GHI'
内容的提问来源于stack exchange,提问作者Ilham Learning
相关产品推荐
相关产品推荐

