Счетчик и для петель

Я пишу кусок кода, который перебирает каждую запись и печатает статистику, называемую интервалами.

for record in records:

    from collections import Counter
    count = Counter(intervals)

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

Вывод выглядит так:

Record 1
199
7
200
30

Record 2
199
6
200
30

В этом примере в записи 1 имеется 7 экземпляров длины интервала 199 и 30 экземпляров длины интервала 200. В записи 2 имеется 6 экземпляров длины интервала 199 и 31 экземпляр длины интервала 200. Я хотел бы хотелось бы увидеть общую сводку статистики обеих записей, как это, но не могу понять, как получить эти результаты:

All Records

199
13

200
61

Где в обеих записях имеется 13 экземпляров с общей длиной интервала 199 (7 ​​+6) и 61 экземпляр с общей длиной 200 (30+31). У меня возникли проблемы с получением общей статистической сводки моих записей, как показано выше.

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

Справочные коллекции. Счетчик

Другие вопросы по тегам