计数器和循环

时间:2017-08-07 16:23:41

标签: python count iteritems

我正在编写一段代码,遍历每条记录并打印一个名为interval的统计信息。

ExcelPackage package = new ExcelPackage();

ExcelWorksheet ws = package.Workbook.Worksheets["Sheet1"];

ws.Cells["A24:C36"].Clear();

输出如下:

for record in records:

    from collections import Counter
    count = Counter(intervals)

    for interval, frequency in count.iteritems():
        print interval
        print frequency

在此示例中,在记录1中,有7个间隔长度为199的实例和30个间隔长度为200的实例。在记录2中,有6个间隔长度为199的实例和31个间隔长度为200的实例。 我希望看到这两个记录的整体统计摘要,但无法弄清楚如何获得这些结果:

Record 1
199
7
200
30

Record 2
199
6
200
30

在两个记录中,总共有13个实例,间隔长度为199(7 + 6),总共61个实例,间隔长度为200(30 + 31)。如上所示,我无法获得记录的整体统计摘要。

1 个答案:

答案 0 :(得分:1)

您需要存储频率计数的for loop之外的变量 以下示例可以帮助您。

from collections import Counter


records = [[199,200,200], [200,199,200]]
freq_dist = Counter()                        # Variable store frequency distribution

for record in records:
    counts = Counter(record)
    freq_dist.update(counts)

for freq, value in freq_dist.items():
   print(freq, value)

输出:

200 4
199 2

参考collections.Counter