名前、都市、番号のリストを含むファイルを開き、都市ごとの番号の平均をとる関数を作成しようとしています。
私はこれまでに次のようなものを持っています:
numbers = 0
count = 0
n = 0
while n < len(file):
for item in file:
if item.split(' ')[-2] == city:
count += 1
numbers += float(item.split(' ')[-1])
n += 1
else:
n += 1
return numbers / count
ここで、[-2]は都市の位置、[-1]は番号の位置です。ファイルがすでに開いていると仮定します。
私のコードはファイル全体を実行し、最後の行にあるものだけを返します。したがって、ファイルの最後の行にロンドンの人がいて、ロンドンの平均をとろうとしている場合は、その1つの番号が表示されます。他の都市の平均をとろうとすると、何も返されません。
カウントを更新せずにファイル全体をループするのはなぜですか?また、どうすれば修正できますか?
編集:
コードを編集すると、ファイルは次のようになります。
NAME1 COUNTRY CITY NUMBER
各行に。