这个程序返回一个给定状态的填充,但是我试图改变它,所以我可以得到文件中所有状态的平均值,但我不知道我应该怎么做。如果有人能解释如何让函数返回所有状态的人口,我可以从那里拿走它。
def findpop(state):
s= state.capitalize()
file = open(getMediaPath("population_state_reduced (2).csv"),"rt")
lines = file.readlines()
file.close()
for line in lines:
parts = line.split(",")
if parts[4] == s:
return int(parts[5])
return -1
答案 0 :(得分:1)
您需要先收集所有州的人口。人口在第5位。现在你的函数只返回它,它匹配状态(位置4)。
因此,您可以返回人口的总和,或者只返回所有州及其人口的列表。
以下是如何返回状态及其总体的元组列表:
def findpop(state=None):
with open(getMediaPath("population_state_reduced (2).csv"),"rt") as f:
if state is None:
return [(parts[4], int(parts[5]) for parts in line.split(',') for line in f]
else:
for line in f:
parts = line.split(',')
if parts[4] == state.capitalize():
return int(parts[5])
现在,当您在没有状态的情况下调用此函数时,它将返回所有州及其人口的列表。
如果您使用特定状态调用它,它将仅返回该州的人口。