【发布时间】:2021-04-09 00:06:22
【问题描述】:
我有一个包含三列(ID、县和候选人)的 csv 文件。有四个候选人,我需要创建四个列表(每个候选人一个)。每次候选人的名字出现在列表/列中时,我都想将该名字添加到新列表中,然后获取最后一个列表的长度,以查看他们获得了多少票。当我运行脚本时,它成功打印了总票数,但是每个候选人列表的长度都打印为“0”,所以我认为他们没有成功添加到列表中。
我对 python 还很陌生。我相信我的错误在于我的循环方式和 if 语句。
谢谢。
with open(poll_path, 'r') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',')
#skip the header
next(csvreader,None)
python/
votes = 0
votes = []
candidate_list = 0
candidate_list = []
khan = 'Khan'
khan = []
kahn = 0
correy = "Correy"
correy = []
correy = 0
li = "Li"
li = []
li = 0
otooley = "O'Tooley"
otooley = []
otooley = 0
for row in csvreader:
votes_cast=str(row[0])
votes.append(votes_cast)
candidates=str(row[2])
candidate_list.append(candidates)
if row[2] == str(khan):
khan.append(candidate_list)
if row[2] == str(correy):
correy.append(candidate_list)
if row[2] == str(li):
li.append(candidate_list)
if row[2] == str(otooley):
otooley.append(candidate_list)
total_votes = len(votes)
print("Election Results")
print("----------------------------")
print("Total Votes: " + str(total_votes))
print("----------------------------")
kahn_votes = len(khan)
print(kahn_votes)
correy_votes = len(correy)
print(correy_votes)
li_votes = len(li)
print(li_votes)
otooley_votes = len(otooley)
print(otooley_votes)
【问题讨论】:
-
如果您在脚本之前/之后显示数据的样子以及您想要的结果,您的帖子会更清晰
-
这是我得到的结果。 (PythonData) C:\Users\hilar\python_challenge\PyPoll\Resources>python testing.py 选举结果 ----------------------------总票数:3521001 ---------------------------- 0 0 0 0
标签: python list csv conditional-statements