首页 > 解决方案 > Python3 - 如何从列表中读取单词作为键,然后计算它们的出现并将其作为值存储到键中

问题描述

我从一个包含如下内容的文件中获取信息:

1:Record:Place1:Ext12 2:Record:Place2:Ext2 3:Record:Place1:Ext19 4:Record:Place1:Ext12

我正在尝试将诸如 Place1 和 Place2 之类的单词存储在字典中作为键,然后计算它们的出现次数并将整数分别存储count为这些键的值。

file = open('./Records.txt', mode='r')
d_file = file.read()

location = dict()
count = 0

for item in d_file.splitlines():
    items = item.split(':')
    key = items[2]
    if key == items[2]:
       count += 1
       location[key] = count

print(location)

标签: python-3.xdictionarykeyvaluepair

解决方案


收藏模块中有一个计数器功能。(点击阅读官方文档)

它完全符合您的要求。它采用可迭代或映射并返回键的字典和出现次数作为值。

from collections import Counter
#open file, etc
keys = [item.split(':')[2] for item in d_file.splitlines()]
print(Counter(keys))

在上面的代码片段中,根据您的格式列出了所有键出现的列表,然后打印出出现次数的字典。

假定该文件具有正确格式化的行,因此item.split(':')[2]存在。我建议查看此答案以获得更安全的 str 分区如何在 Python 中可靠地拆分字符串,当它可能不包含模式或所有 n 元素时?


推荐阅读