计算python中的第一个元素并打印?

时间:2015-04-14 21:36:00

标签: python

我在Python中有一个数据结构,可以跟踪看起来像这样的客户端分析

'B': ['J'], 'C': ['K'], 'A': ['L'], 'D': ['J'], 'E': ['L']

我试图打印这样的表:

Site Counts:
    J  got  2 hits
    K  got  1 hits
    L  got  2 hits

到目前为止,我已经考虑过使用.fromkeys()方法了,但是对于如何获取数据没有太多的想法,我已经尝试了很多不同的事情,并没有运气这个问题。

1 个答案:

答案 0 :(得分:2)

Python附带了一个计数器类:collections.Counter()

from collections import Counter

site_counts = Counter(value[0] for value in inputdict.values())

演示:

>>> from collections import Counter
>>> inputdict = {'B': ['J', 'K', 'L'], 'C': ['K', 'J', 'L'], 'A': ['L', 'K', 'J'], 'D': ['J', 'L', 'K'], 'E': ['L', 'J', 'K']}
>>> site_counts = Counter(value[0] for value in inputdict.values())
>>> site_counts
Counter({'J': 2, 'L': 2, 'K': 1})

Counter是一个字典子类,所以你现在可以循环遍历键并打印出相关的计数,但你也可以使用{{3将输出按count(降序)排序。 }}:

print('Site Counts:')
for site, count in site_counts.most_common():
    print('    {}  got {:2d} hits'.format(site, count))

为您的样本输入打印:

Site Counts:
    J  got  2 hits
    L  got  2 hits
    K  got  1 hits