改变查找人口功能

时间:2016-11-15 05:04:20

标签: python

这个程序返回一个给定状态的填充,但是我试图改变它,所以我可以得到文件中所有状态的平均值,但我不知道我应该怎么做。如果有人能解释如何让函数返回所有状态的人口,我可以从那里拿走它。

 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

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])

现在,当您在没有状态的情况下调用此函数时,它将返回所有州及其人口的列表。

如果您使用特定状态调用它,它将仅返回该州的人口。