如何获得数组列表中列的最低值并将其添加到字典中?



我正在编写一段代码,可以从python打开csv文件并使用它提供的信息。这个文件取自勒芒的比赛,其中包括电路扇区时间。我使用的文件是这样的:CSV文件图像(每一列属于某一信息。在行中,同一队重复了几次,但他们的时间或其他信息不同)

目前我已经制作了这个代码,但是当我想保存每个团队的最佳时间时,它会保存最后的时间或不是的时间。

代码:

def csv_reader ():
correct = False
while (not correct):
try:
filename=input("FileName.csv: ")
f=open(filename, "r")
csv_list = f.readlines()
correct = True    
except IOError:
print("ERROR")
f.close()
return csv_list
def csv_data (csv_list):
dictionary_1={}
for line in csv_list: 
data=line.split(';')
team=data[0] 
S1=(data[26])
if team in dictionary_1:
if dictionary_1[team][0]>S1:
dictionary_1[team][0]=S1
else:
dictionary_1[team]=[0]
dictionary_1[team][0]=S1
return dictionary_1
csv_list = csv_reader()
del csv_list[0]
print (csv_data(csv_list))

我希望代码读取一列的每一行,并在本例中保存字典中每个团队的最小值。

谢谢!

您提供的图像与您的代码不匹配(…Vs场26)。也就是说,调整它,它似乎像预期的那样工作。稍微调整一下代码:

def csv_data(csv_list, circuit_sect=26):
dictionary_1 = {}
for line in csv_list:
data = line.split(';')
team = data[0]
S1 = float(data[circuit_sect].strip())
if team not in dictionary_1 or dictionary_1[team] > S1:
dictionary_1[team] = S1
return dictionary_1

csv_list = [
"1;...;36.067n",
"1;...;36.879n",
"10;...;37.768n",
"10;...;34.998n"
]
print(csv_data(csv_list, 2))

和输出:

{'1': 36.067, '10': 34.998}

最新更新