如何修改Python代码实现仅返回列表中的重复元素一次?
修改方案:让重复元素仅出现一次
你的代码问题在于,只要元素出现次数大于1就会被添加到结果列表,导致重复元素多次出现。可以通过两种简单方式修改:
方法一:添加前检查是否已在结果列表
在将元素加入结果列表前,先判断它是否已经存在,避免重复添加:
# 注意:不要用list作为变量名,会覆盖Python内置的list类型 my_list = ['A', 'R', 'I','J','I','T','T'] def recurring(): list1 = [] for i in my_list: # 同时满足两个条件:元素重复,且未被加入结果列表 if my_list.count(i) > 1 and i not in list1: list1.append(i) return list1 print(recurring()) # 输出: ['I', 'T']
方法二:利用集合自动去重
集合的特性是元素唯一,先把所有重复元素存入集合,再转成列表:
my_list = ['A', 'R', 'I','J','I','T','T'] def recurring(): duplicates = set() for i in my_list: if my_list.count(i) > 1: duplicates.add(i) # Python 3.7+中集合转列表会保留元素首次出现的顺序 return list(duplicates) print(recurring()) # 输出: ['I', 'T']
额外提醒
避免使用list作为变量名,这会覆盖Python内置的list类型,导致后续无法正常使用list()等内置功能。
内容的提问来源于stack exchange,提问作者user20666007
相关产品推荐
相关产品推荐

