如何过滤列表中仅出现一次的元素,生成仅含重复元素的新列表
过滤列表中仅出现一次的元素
需求:给定一个整数列表,生成新列表,仅保留原列表中非单次出现的元素(即保留所有出现次数≥2的元素的每一个实例)。
输入列表:
item_list = [502, 502, 1341, 1342, 1500, 1500, 2521, 2521, 3078, 3688, 4191, 5185, 5701, 5701]
期望输出:
filtered_list = [502, 502, 1500, 1500, 2521, 2521, 5701, 5701]
方法一:用collections.Counter统计次数(高效简洁)
先统计每个元素的出现次数,再遍历原列表筛选符合条件的元素:
from collections import Counter item_list = [502, 502, 1341, 1342, 1500, 1500, 2521, 2521, 3078, 3688, 4191, 5185, 5701, 5701] counts = Counter(item_list) filtered_list = [item for item in item_list if counts[item] > 1] print(filtered_list) # 输出: [502, 502, 1500, 1500, 2521, 2521, 5701, 5701]
方法二:手动统计次数(无需导入模块)
如果不想用内置模块,可以手动遍历列表统计次数,再筛选:
item_list = [502, 502, 1341, 1342, 1500, 1500, 2521, 2521, 3078, 3688, 4191, 5185, 5701, 5701] counts = {} # 先统计每个元素的出现次数 for item in item_list: counts[item] = counts.get(item, 0) + 1 # 筛选出非单次出现的元素 filtered_list = [item for item in item_list if counts[item] > 1] print(filtered_list) # 输出: [502, 502, 1500, 1500, 2521, 2521, 5701, 5701]
内容的提问来源于stack exchange,提问作者mod13
相关产品推荐
相关产品推荐

