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

Python新手求助:如何自动递增索引生成统计列表?

统计列表中随机数出现次数的高效方法

方法1:列表推导式+去重(基础实现)

不用手动逐个编写统计项,先提取列表中的唯一元素,再通过循环自动生成统计列表:

list_1 = [1, 2, 2, 3, 3, 3, 4]
# Python3.7+用dict.fromkeys提取唯一元素并保持原有出现顺序
unique_nums = list(dict.fromkeys(list_1))
# 自动生成[元素, 次数]格式的列表
count_list = [[num, list_1.count(num)] for num in unique_nums]
print(count_list)

如果不需要保持元素顺序,用unique_nums = list(set(list_1))更简洁,但set会打乱原有顺序。

方法2:用collections.Counter(推荐,高效)

Python标准库的Counter是专门做计数的工具,仅需遍历一次列表就能完成统计,处理10000条数据也毫无压力:

from collections import Counter

list_1 = [1, 2, 2, 3, 3, 3, 4]
# 直接统计每个元素的出现次数
count_counter = Counter(list_1)
# 转成你需要的列表格式
count_list = [[num, cnt] for num, cnt in count_counter.items()]
print(count_list)

这个方法时间复杂度为O(n),比反复调用list.count()的O(n²)高效得多,数据量越大优势越明显。

方法3:用pandas(适合大数据场景)

如果你的数据量极大,用pandas的value_counts处理会更便捷:

import pandas as pd

list_1 = [1, 2, 2, 3, 3, 3, 4]
# 转成Series类型
num_series = pd.Series(list_1)
# 统计元素出现次数
count_result = num_series.value_counts()
# 转成目标列表格式
count_list = [[num, cnt] for num, cnt in count_result.items()]
print(count_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:10:01