Python3 - 如何从列表中读取单词作为键,然后计算它们的出现次数并将其作为值存储到键中

Python3 - How to read words from a list as keys, and then count and store their occurrence as values to the keys

我正在从包含以下内容的文件中获取信息:

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)

collections 模块中有一个 Counter 功能。 (点击阅读官方文档)

它完全符合您的要求。它需要一个可迭代或映射和 returns 一个键和出现次数的字典作为值。

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

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

假定文件的行格式正确,因此 item.split(':')[2] 存在。我建议查看此答案以获得更安全的 str 分区 How do I reliably split a string in Python, when it may not contain the pattern, or all n elements?