【发布时间】:2015-08-22 12:38:01
【问题描述】:
我想使用计数器函数来计算列表中每个数组的值0 的出现次数。
from collections import Counter
[Counter(x) for x in a]
[Counter(x)[0] for x in a]
使用上面的代码,它只适用于如下示例:
a = [array([-2, 0, 0]), array([-2, -1, 1])]
当它应用于下面有多个数组的代码时,它会引发 TypeError:
a = [[array([-2, 0, 0]), array([-2, -1, 1])], [array([3, -1]), array([1, -2])]]
预期输出:
[[2, 0], [0, 0]]
谁能帮帮我?
【问题讨论】:
-
array()是做什么的? -
“它返回错误”:那个错误是什么?请发布完整的回溯。
-
如果我忽略
array,逻辑很简单:[Counter(x)[0] for x in list(chain(*a))] -
@AbhiP 不过这会给出一个平面列表。
-
回溯(最近一次调用最后):文件“
”,第 1 行,在 [Counter(d) for d in x] 文件“C:\Python27\lib \collections.py",第 450 行,在 init self.update(iterable, **kwds) 文件“C:\Python27\lib\collections.py”,第 532 行,在更新 self[elem ] = self_get(elem, 0) + 1 TypeError: unhashable type: 'numpy.ndarray'
标签: python arrays loops counter