2016-11-15 7 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つの状態の母集団を返しますが、すべての状態の母集団を返すようにしています –

答えて

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

は今、それはすべての状態のリストを返し、そのう人口。

特定の状態で呼び出すと、その状態の人口のみが返されます。

関連する問題