группировать и считать в питоне - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь получить группу и считать в python. Похоже, он не сгруппирован по какой-то причине

Использование python 2.7

#!/usr/bin/env python
counts = {}
logfile = open("/tmp/test.out", "r")

for line in logfile:
    if line.startswith("20") in line:
        seq = line.strip()
        substr = seq[0:13]
        if substr not in counts:
            counts[substr] = 0
            counts[substr] += 1
            for substr, count in counts.items():
                print(count,substr)

Я бы хотел вывод, как показано ниже, сгруппированный по количеству

 6 2019-06-17T00
 13 2019-06-17T01
  9 2019-06-17T02
  7 2019-06-17T03
  6 2019-06-17T04

Ответы [ 2 ]

2 голосов
/ 21 июня 2019

Слишком большой отступ строки на один блок

for line in logfile:
    if line.startswith("20") in line:
        seq = line.strip()
        substr = seq[0:13]
        if substr not in counts:
            counts[substr] = 0
        # Un-indented below
        counts[substr] += 1

# Print output only after loop completes
for substr, count in counts.items():
    print(count,substr)

Раньше вы делали увеличение только в том случае, если подстрока не была в словаре подсчета.

0 голосов
/ 21 июня 2019
counts = {}
logfile = open("/tmp/test.out", "r")

for line in logfile:
    if line.startswith("20") in line:
        seq = line.strip()
        substr = seq[0:13]
        if substr not in counts:
            counts[substr] = 0
        counts[substr] += 1
for substr, count in counts.items():
    print(count,substr)

Я думаю, что это будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...