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?
我正在从包含以下内容的文件中获取信息:
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?