
python如何挑选列表中相同数据
用户关注问题
如何找出列表中重复出现的元素?
在Python中,怎样才能快速找出一个列表中有哪些元素是重复出现的?
使用集合和计数方法识别重复元素
可以利用collections模块中的Counter类统计列表中每个元素出现的次数,然后筛选出出现次数大于1的元素。示例如下:
from collections import Counter
lst = [1, 2, 2, 3, 4, 4, 4, 5]
counter = Counter(lst)
duplicates = [item for item, count in counter.items() if count > 1]
print(duplicates) # 输出: [2, 4]
怎样获取列表中所有重复项及其出现次数?
我想知道每个重复数据在列表中出现了几次,Python里该怎么实现?
利用Counter统计并输出重复元素及数量
Counter会返回一个字典,键是元素,值是出现次数。可以在遍历该字典时,选出所有出现次数大于1的键值对,表示重复元素及其数量。示例代码:
from collections import Counter
lst = ['a', 'b', 'a', 'c', 'b', 'b']
counter = Counter(lst)
for item, count in counter.items():
if count > 1:
print(f'{item} 出现了 {count} 次')
这段代码会打印出所有重复元素和对应的出现次数。
如何在不改变列表顺序的情况下筛选重复元素?
得到列表中重复的数据时,我希望保持它们在列表中的原始顺序,应该如何做?
利用集合辅助按顺序过滤重复元素
可遍历列表并利用一个辅助集合来记录已经遇到的元素。当元素出现次数超过一次时且第一次检测时,将其加入结果列表,保持顺序不变。示例代码如下:
def find_duplicates_in_order(lst):
seen = set()
duplicates = set()
result = []
for item in lst:
if item in seen:
if item not in duplicates:
duplicates.add(item)
result.append(item)
else:
seen.add(item)
return result
lst = [3, 5, 3, 2, 4, 5, 2, 2]
print(find_duplicates_in_order(lst)) # 输出: [3, 5, 2]