csv文件中的列排序(Python)

2024-06-16 12:52:52 发布

您现在位置:Python中文网/ 问答频道 /正文

代码有问题。提供了一个名为“racing.csv”的文件,该文件存储了在“Drive”类中找到的变量。问题背后的概念是,程序应该对比赛时间进行排序(从最低到最高),并将分数分配给前3名选手,然后将这些数据导出到新文件中。除了我在驱动器上调用shortBubbleSort并且没有正确排序比赛时间外,所有代码都工作正常。谢谢你的帮助

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)

Tags: 文件csvinselffordriverdriveteam
1条回答
网友
1楼 · 发布于 2024-06-16 12:52:52

这有用吗

**范围函数sintax*:range([start], stop[, step])

开始:序列的开始编号

停止:生成最多的数字,但不包括此数字

步骤:序列中每个数字之间的差值

def shortBubbleSort(alist):
    for passnum in range(len(alist)-1,0,-1):
        for i in range(passnum):
            if alist[i]>alist[i+1]:
                temp = alist[i]
                alist[i] = alist[i+1]
                alist[i+1] = temp

相关问题 更多 >