Python:计算行数并区分它们

标签 python count

我正在使用一个应用程序,它根据一分钟内完成某件事的次数提供定时输出,我希望手动获取输出(复制粘贴)并拥有我的程序,我希望计算有多少每分钟完成一次。

示例输出是这样的:

13:48 An event happened.
13:48 Another event happened.
13:49 A new event happened.
13:49 A random event happened.
13:49 An event happened.

因此,程序需要了解在 13:48 发生了 2 件事,在 13:49 发生了 3 件事。我不确定信息将如何存储,但之后我需要对它们进行平均,以确定它发生的频率的平均值。抱歉这么复杂!

最佳答案

您可以只使用时间作为字典的键并将其指向事件消息列表。该值的长度将为您提供事件的数量,同时仍然让您了解特定事件本身:

>>> from pprint import pprint
>>> from collections import defaultdict
>>> events = defaultdict(list)
>>> with open('log.txt') as f:
...     for line in f:
...         time, message = line.strip().split(None, 1)
...         events[time].append(message)
... 
>>> pprint(dict(events)) # pprint handles defaultdicts poorly
{'13:48': ['An event happened.', 'Another event happened.'],
 '13:49': ['A new event happened.',
           'A random event happened.',
           'An event happened.']}

如果你想更花哨,你可以将时间解析成一个时间对象。

编辑:考虑 Mike Graham 的建议。

关于Python:计算行数并区分它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510651/

相关文章:

python - 在正则表达式中使用负先行进行贪婪匹配

php - 使用 PHP 到 mySQL 查询 SELECT COUNT

sql - 如何组合 DISTINCT 和 COUNT 聚合值

mysql - 将计算的 COUNT 列从一个 View 添加到另一 View

安卓开发 : Count EditText Lines on textChanged?

python - 如何解决 ValueError : The number of classes has to be greater than one; got 1 class

java - kademila end emule 库

python - 使用 pygame 在 python 中使图像背景透明的问题

javascript - JQuery/Flask - 将数据以 JSON 形式从服务器发送到浏览器

delphi - 计算备忘录中的特定文本(Delphi)