计算python中多维数组中唯一字符串的数量

时间:2014-04-04 01:02:55

标签: python

我试图计算多维数组第二个值中唯一字符串的数量。

我目前的代码是:

>>> a=[['1a','1b','1c'],['2a','2b','2c'],['3a','3b','3c']]
>>> from collections import Counter
>>> result=Counter(a[1]);
>>> result
Counter({'2a': 1, '2b': 1, '2c': 1})

但是,我希望输出为:

Counter({'1b': 1, '2b': 1, '3b': 1})

计算每个列表中的第二个值,而不是第二个列表中的三个值。

我意识到Counter(a[1])是错误的,但我不确定如何以我想要的方式执行此操作。

2 个答案:

答案 0 :(得分:3)

要计入第二个“列”,请尝试以下操作:

a = [['1a','1b','1c'],['2a','2b','2c'],['3a','3b','3c']]
from collections import Counter
result = Counter(zip(*a)[1])
print result

输出:

Counter({'3b': 1, '1b': 1, '2b': 1})

答案 1 :(得分:1)

应该比使用zip快一点:

from collections import Counter

a = [['1a','1b','1c'],['2a','2b','2c'],['3a','3b','3c']]
result = Counter(lst[1] for lst in a)
print(result)

给出

Counter({'3b': 1, '1b': 1, '2b': 1})