2016-11-15 63 views
0

該程序返回一個給定狀態的人口,但我試圖改變它,所以我可以得到該文件中所有狀態的均值,但我不知道應該如何去做這件事。如果有人能夠解釋如何讓函數返回所有狀態的人口,我可以從那裏拿回來。更改查找人口函數

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

你的問題到底是什麼?你知道如何計算平均值,中位數和模式值嗎?你知道如何返回多個值嗎?你嘗試過什麼,遇到了什麼*特定*問題? – FriendFX

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

現在,當你調用這個函數沒有國家,它會返回所有國家的列表和它們的人口。

如果您以特定狀態調用它,它將只返回該州的人口。