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

如何用Python列表推导式生成按索引统计对应数字出现次数的列表

问题解答

完全可以用Python列表推导式实现该需求,具体实现方法如下:

基础实现(已知n的取值)

示例中的n为4,直接遍历0到n的所有整数,统计每个整数在输入列表中的出现次数即可:

# 注意不要使用input作为变量名,会覆盖Python内置的input()函数
input_list = [4, 4, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 2, 2, 2]
n = 4
output = [input_list.count(i) for i in range(n + 1)]

运行后得到的output值为[0, 2, 7, 4, 2],和预期输出完全匹配。

通用实现(无需提前知道n的取值)

如果不知道n的具体值,可以直接取输入列表的最大值作为n的上限:

input_list = [4, 4, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 2, 2, 2]
output = [input_list.count(i) for i in range(max(input_list) + 1)]

补充说明

如果输入列表的长度非常大,上述写法每次调用count()都会全量遍历一次输入列表,时间复杂度较高。如果允许额外代码预处理,可以先用collections.Counter统计频率后再生成列表,不过如果要求仅用列表推导式实现需求,上述写法完全满足要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:24:02