计数器列表 python 2.7

Counter list python 2.7

我有这样的列表:

Pasang = [0, 4, 4, 5, 1, 7, 6, 7, 5, 7, 4, 9, 0, 10, 1, 10,...., 23, 9, 23, 7, 23]

我从该列表中计算项目:

satuan = Counter(pasang)

然后我得到:

Counter({5: 10, 6: 7, 0: 5, 1: 5, 7: 5, 10: 4, 11: 4, 15: 4,...,14: 1, 21: 1})

我想从柜台拿钥匙,所以我这样做:

satu = satuan.keys()

我得到这样的排序列表:

[0, 1, 2, 4, 5,...,21, 22, 23]

但我需要这样的输出(未排序):

[5, 6, 0, 1,...,14, 21]

抱歉我的英语不好。

您可能需要:

[key for key, freq in c.most_common()]

其中 cCounter 实例。

most_common 将 return 键和频率对,按频率降序排列。然后你使用理解提取关键部分。

如果您想保持顺序,请查看您刚刚创建的 Counter 对象,它的元素按频率 w.r.t 降序排列,您也可以实现相同的目的通过按频率对键进行排序并将 reverse 标志设置为 True

的行为
import collections
Pasang = [0, 4, 4, 5, 1, 7, 6, 7, 5, 7, 4, 9, 0, 10, 1, 10, 23, 9, 23, 7, 23]

a = collections.Counter(Pasang)

keys = sorted(a.keys(), key = lambda x:a[x], reverse = True)
print a
print keys
>>> Counter({7: 4, 4: 3, 23: 3, 0: 2, 1: 2, 5: 2, 9: 2, 10: 2, 6: 1})
>>> [7, 4, 23, 0, 1, 5, 9, 10, 6]