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

Python如何逐索引计算嵌套列表各对应位置元素的众数

错误原因
  • 你直接将嵌套列表a传入statistics.mode()触发类型错误,该函数要求传入由可哈希元素组成的一维序列,而你传入的序列元素是子列表,属于不可哈希类型,因此报错。
正确实现方法

方法1:使用statistics标准库实现

先通过zip(*a)对嵌套列表做转置,得到每一列的同索引元素集合,再对每一列单独求众数:

import statistics

a = [[1,2,3], [1,3,3], [0,3,0]]
result = [statistics.mode(col) for col in zip(*a)]
print(result)

输出结果:

[1, 3, 3]

注意:如果某一列存在多个出现次数相同的最高频元素,statistics.mode()在Python 3.8及以上版本会抛出异常。如果需要兼容多众数场景,可以改用statistics.multimode()取第一个众数:

result = [statistics.multimode(col)[0] for col in zip(*a)]

方法2:使用collections.Counter实现

不需要依赖statistics库,用计数器取最高频元素即可:

from collections import Counter

a = [[1,2,3], [1,3,3], [0,3,0]]
result = [Counter(col).most_common(1)[0][0] for col in zip(*a)]
print(result)

输出结果同样为[1, 3, 3]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:54:01