0
存在代码问题。获得了一个名为“racing.csv”的文件,该文件存储了“Drive”类中找到的变量。问题背后的概念是,程序应该对比赛时间(从最低到最高)进行排序,并将点数分配给前3名赛车手,然后将这些数据导出到新文件中。除了在调用驱动器上的shortBubbleSort时,所有代码都可以正常工作,并且不会正确排列比赛时间。帮助表示赞赏。对csv文件中的列进行排序(Python)
import csv
class Drive(object):
driver = ""
team = ""
racetime = 0.0
points = 0
def __init__(self,driver,team,racetime,points):
self.driver = driver
self.team = team
self.racetime = racetime
self.points = points
f = open('racing.csv', 'r')
csv_f = list(csv.reader(f))
driverclasses = []
for i in range(len(csv_f)):
d = Drive(csv_f[i][0],csv_f[i][1],csv_f[i][2],csv_f[i][3])
driverclasses.append(d)
for row in csv_f:
print (row)
for x in range(0, 6):
csv_f[x][2]=(input("Enter Racetime"))
def shortBubbleSort(alist):
exchanges = True
passnum = len(alist)-1
while passnum > 0 and exchanges:
exchanges = False
for i in range(passnum):
if alist[i]>alist[i+1]:
exchanges = True
temp = alist[i]
alist[i] = alist[i+1]
alist[i+1] = temp
passnum = passnum-1
shortBubbleSort(Drive)
print(csv_f)
csv_f[0][3] = 25
csv_f[1][3] = 18
csv_f[2][3] = 15
f = open('RacingResults.csv', 'w')
for row in csv_f:
print (row)
可能没有,因为还有很多其他问题:shortBubbleSort(Drive) –
我试过一个简单的例子,我发布的解决方案似乎工作。让我们来看看@Sandy所说的:) –