我现在的代码:
from collections import Counter
c=Counter(list_of_values)
返回:
Counter({'5': 5, '2': 4, '1': 2, '3': 2})
我想将此列表按项目排序为数字(/字母),而不是出现次数。如何将其转换为对的列表,例如:
[['5',5],['2',4],['1',2],['3',2]]
注意:如果我使用c.items(),我得到:dict_items([('1',2),('3',2),('2',4),('5',5 )]) 这对我没有帮助......
提前致谢!
答案 0 :(得分:14)
... ERR
3>> list(collections.Counter(('5', '5', '4', '5')).items())
[('5', 3), ('4', 1)]
答案 1 :(得分:1)
如果您想按项目数字/字母顺序升序排序:
l = []
for key in sorted(c.iterkeys()):
l.append([key, c[key]])
答案 2 :(得分:0)
您可以使用sorted()
:
>>> c
Counter({'5': 5, '2': 4, '1': 2, '3': 2})
>>> sorted(c.iteritems())
[('1', 2), ('2', 4), ('3', 2), ('5', 5)]
答案 3 :(得分:0)
将计数器转换为字典,然后将其溢出到两个单独的列表中,如下所示:
c=dict(c)
key=list(c.keys())
value=list(c.values())
答案 4 :(得分:-3)
>>>RandList = np.random.randint(0, 10, (25))
>>>print Counter(RandList)
输出类似......
Counter({1: 5, 2: 4, 6: 4, 7: 3, 0: 2, 3: 2, 4: 2, 5: 2, 9: 1})
有了这个......
>>>thislist = Counter(RandList)
>>>thislist = thislist.most_common()
>>>print thislist
[(1, 5), (2, 4), (6, 4), (7, 3), (0, 2), (3, 2), (4, 2), (5, 2), (9, 1)]
>>>print thislist[0][0], thislist[0][1]
1 5