将列表与文件进行比较,然后每次该元素出现在列表中时进行计数,并将其放入字典

2024-05-16 02:50:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份政党名单:

x = ['Green', 'Republicans' 'Democrats', 'Independent']

然后我有一个文件列出了哪个选区被该政党赢得,大概有60个条目。我有一些启动代码,但我不太知道如何继续

def party_winners (political_party, filename):
    winning_party = {}
    with open (filename,'r') as f:
        for line in f:
            results=line.split(',')

基本上,我只想将x与我文件中的每个列表进行比较,看看是否有匹配的内容。如果文件中有50次,我的字典会说:

winning_party = {'Republicans':50, 'Democrats': 35, 'Independents': 0}

我知道我忘了一些东西我的文件是

[county, votes, political party, person who ran] 

Tags: 文件代码partyline条目greenfilenamepolitical
2条回答

给出获奖者列表lst,您可以直接使用collections.Counter

from collections import Counter

c = Counter(lst)

如何获取lst取决于csv文件的结构

假设结果是一个获奖者列表,其形式与他们在x中显示的完全相同,您可以这样做:

winning_party = {}
for region in results:
    if not region in winning_party:
        winning_party[region] = 0
    winning_party[region] += 1

这:

  • 创建空字典winning_party
  • 循环遍历区域数组中的所有元素:
    • 检查项目是否已在字典中,如果未在字典中则添加
    • 将项目的计数增加1

相关问题 更多 >