gpt4 book ai didi

Python:计算一个单词在文件中出现的次数

转载 作者:行者123 更新时间:2023-11-28 19:55:52 24 4
gpt4 key购买 nike

我有一个文件,文件中每行包含一个城市名称和一个州名称。我想计算状态名称出现的次数并返回值。

例如,如果我的文件包含:

Los Angeles   California
San Diego California
San Francisco California
Albany New York
Buffalo New York
Orlando Florida

我想返回每个州名称出现的次数。我有这个去加利福尼亚。

for line in f:
California_count=line.find("California")
if California_count!=-1:
total=line.count("California")
print(total)

这只给我值 1,我假设这是因为它每行出现 1 次。如何让它返回数字 3 而不是数字 1?

最佳答案

使用字典存储计数器:

data = """Los Angeles   California
San Diego California
San Francisco California
Albany New York
Buffalo New York
Orlando Florida""".splitlines()

counters = {}
for line in data:
city, state = line[:14], line[14:]
# city, state = line.split('\t') # if separated by tabulator
if state not in counters:
counters[state] = 1
else:
counters[state] += 1
print counters
# {'Florida': 1, 'New York': 2, 'California': 3}

你可以使用 collections.defaultdict 来简化它:

from collections import defaultdict
counter = defaultdict(int)
for line in data:
city, state = line[:14], line[14:]
counter[state] += 1

print counter
# defaultdict(<type 'int'>, {'Florida': 1, 'New York': 2, 'California': 3})

或使用 collections.Counter 和生成器表达式:

from collections import Counter
states = Counter(line[14:] for line in data)
# Counter({'California': 3, 'New York': 2, 'Florida': 1})

关于Python:计算一个单词在文件中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22849662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com