以下是一个示例代码,用于按计数分组并取前3个:
from collections import Counter
def group_and_take_top3(lst):
# 计算每个元素的计数
counts = Counter(lst)
# 按计数分组
groups = {}
for item, count in counts.items():
if count in groups:
groups[count].append(item)
else:
groups[count] = [item]
# 取前3个
top3 = []
for count in sorted(groups.keys(), reverse=True)[:3]:
top3.extend(groups[count])
return top3
# 测试示例
lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
result = group_and_take_top3(lst)
print(result) # 输出 [4, 3, 2]
这个代码使用了collections
模块中的Counter
类来计算每个元素的计数,并将计数相同的元素分组。然后,按计数从大到小排序,并取前3个元素。
上一篇:按计数分组而不丢失列
下一篇:按计数和分组表达式进行更新