【问题标题】:Sorting Columns within csv files(Python)对 csv 文件中的列进行排序(Python)
【发布时间】:2017-04-16 18:57:21
【问题描述】:

代码有问题。获得了一个名为“racing.csv”的文件,该文件存储了在“Drive”类中找到的变量。问题背后的概念是程序应该对比赛时间进行排序(从最低到最高)并将积分分配给前 3 名赛车手,然后将这些数据导出到一个新文件中。除了我在 Drive 上调用 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)

【问题讨论】:

    标签: python python-3.x class sorting csv


    【解决方案1】:

    这有帮助吗?

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

    start:序列的起始编号。

    停止:生成最多但不包括该数字的数字。

    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
    

    【讨论】:

    • 可能没有,因为还有很多其他问题:shortBubbleSort(Drive)
    • 我尝试了一个简单的示例,我发布的解决方案似乎有效。让我们看看@Sandy 怎么说:)
    猜你喜欢
    • 2017-06-23
    • 1970-01-01
    • 2016-03-16
    • 2015-06-14
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2015-10-29
    • 2015-05-24
    相关资源
    最近更新 更多