You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python查找列表中的不同元素及其出现次数

Python列表元素统计实现方案

前置说明

我们的目标列表为:x = ['a', 'b', 'c', 'c', 'c', 'c', 'a'],以下方案可同时实现两个需求:

  • 输出列表中不同元素的种类和具体值
  • 输出各元素的出现次数,按次数从高到低展示

方案1:使用标准库collections.Counter(推荐)

Counter是Python标准库专门用于统计可迭代对象元素频率的工具,实现代码最简洁:

# 导入依赖
from collections import Counter

x = ['a', 'b', 'c', 'c', 'c', 'c', 'a']
# 统计所有元素的出现次数
count_result = Counter(x)

# 需求1:输出不同元素信息
unique_elements = list(count_result.keys())
print(f"该列表中有{len(unique_elements)}种不同元素:{'、'.join(unique_elements[:-1])}和{unique_elements[-1]}")

# 需求2:输出各元素出现次数,按次数降序排列
sorted_count = sorted(count_result.items(), key=lambda item: item[1], reverse=True)
output_parts = [f"{count}个{ele}" for ele, count in sorted_count]
print(f"该列表中有{'、'.join(output_parts)}")

运行后输出结果完全匹配需求:

该列表中有3种不同元素:a、b和c
该列表中有4个c、2个a和1个b

方案2:原生Python实现(无额外依赖)

如果不想引入额外工具,可以用字典手动统计:

x = ['a', 'b', 'c', 'c', 'c', 'c', 'a']
count_dict = {}
# 手动遍历统计频率
for ele in x:
    count_dict[ele] = count_dict.get(ele, 0) + 1

# 需求1输出
unique_elements = list(count_dict.keys())
print(f"该列表中有{len(unique_elements)}种不同元素:{'、'.join(unique_elements[:-1])}和{unique_elements[-1]}")

# 需求2输出
sorted_count = sorted(count_dict.items(), key=lambda item: item[1], reverse=True)
output_parts = [f"{count}个{ele}" for ele, count in sorted_count]
print(f"该列表中有{'、'.join(output_parts)}")

运行效果和方案1完全一致。

内容的提问来源于stack exchange,提问作者Shoba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:15:06