私はハッカーのランクを使って少しの宿題をしていますが、なぜ私の答えを受け入れないのか分かりません。CSVの解析とデータの分析
Here is the link to the original repository.
目標は、その目標や価値観可目標との差が最も小さいチームの名前を印刷することです。
LeicesterとAston_Villaの2つの可能性があるようです。レスターは得点と目標の間にマイナスの差があるため(-37)、Aston_Villaの絶対差は最小です(-1)。しかしどちらも受け入れられません。
なぜですか?
import sys
import os
import csv
text = '''Team,Games,Wins,Losses,Draws,Goals,Goals Allowed,Points
Arsenal,38,26,9,3,79,36,87
Liverpool,38,24,8,6,67,30,80
Manchester United,38,24,5,9,87,45,77
Newcastle,38,21,8,9,74,52,71
Leeds,38,18,12,8,53,37,66
Chelsea,38,17,13,8,66,38,64
West_Ham,38,15,8,15,48,57,53
Aston_Villa,38,12,14,12,46,47,50
Tottenham,38,14,8,16,49,53,50
Blackburn,38,12,10,16,55,51,46
Southampton,38,12,9,17,46,54,45
Middlesbrough,38,12,9,17,35,47,45
Fulham,38,10,14,14,36,44,44
Charlton,38,10,14,14,38,49,44
Everton,38,11,10,17,45,57,43
Bolton,38,9,13,16,44,62,40
Sunderland,38,10,10,18,29,51,40
Ipswich,38,9,9,20,41,64,36
Derby,38,8,6,24,33,63,30
Leicester,38,5,13,20,30,64,28'''
with open('football.csv', 'w') as f:
f.write(text)
def read_data(filename):
"""Returns a list of lists representing the rows of the csv file data.
Arguments: filename is the name of a csv file (as a string)
Returns: list of lists of strings, where every line is split into a list of values.
ex: ['Arsenal', 38, 26, 9, 3, 79, 36, 87]
"""
ifile = open('football.csv', 'rt')
reader = csv.reader(ifile)
listed = []
for row in reader:
print(row)
listed.append(row)
return listed
data = read_data('football.csv')
def get_index_with_min_abs_score_difference(goals):
net_goals = []
for i in goals[1:]:
net_goals.append(int(i[5]) - int(i[6]))
return net_goals.index(min(net_goals))+1
def get_team(index_value, parsed_data):
return parsed_data[index_value][0]
footballTable = read_data('football.csv')
minRow = get_index_with_min_abs_score_difference(footballTable)
print(str(get_team(minRow, footballTable)))
また、別の解決策(つまり、得点と目標の差が最も小さいチーム)を試しました。
def get_index_with_min_abs_score_difference(goals):
"""Returns the index of the team with the smallest difference
between 'for' and 'against' goals, in terms of absolute value.
Arguments: parsed_data is a list of lists of cleaned strings
Returns: integer row index
"""
net_goals = []
for i in goals[1:]:
net_goals.append(abs(int(i[5]) - int(i[6])))
return net_goals.index(min(net_goals))+1
ようこそStackOverflow!あなたは本当にきれいに言葉の質問をまとめました。さらに、問題のチャレンジへのリンクは、ここでのあなたの書き込みをうまく補うでしょう。 –