数组python

时间:2017-07-19 16:31:36

标签: python

我有一系列导管角色

x = ['ca','bd','lo',...]

我想找到每种导管的频率。

基本上是这样的列表

y = [[2,'ca'],[0,'bd'],[10,'lo'],...]

在python中有一个简单的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Counter

from collections import Counter
x = ['ca','bd','lo']
Counter(x)
# Counter({'bd': 1, 'lo': 1, 'ca': 1})
Counter(x).items()
# [('bd', 1), ('lo', 1), ('ca', 1)]

无需预先定义任何类别。如果您尝试获取原始列表中不存在的类别,counter只会返回0:

count = Counter(x)
count['not_here']
# 0

答案 1 :(得分:0)

如果您想list lists,可以使用list-comprehesion,如下所示:

x = ['ca','bd','lo']
y = [[x.count(z), z] for z in set(x)]

这将输出:

[[1, 'bd'], [1, 'lo'], [1, 'ca']]