计数器列表 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()]
其中 c
是 Counter
实例。
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]
我有这样的列表:
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()]
其中 c
是 Counter
实例。
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]