2016-12-01 18 views
0

コードに問題があります。 "Drive"クラスで見つかった変数を格納した "racing.csv"というファイルが与えられました。問題の背後にあるコンセプトは、レースタイムをソートし(最下位から最上位まで)、ポイントを上位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) 

答えて

0

これは役に立ちますか?

**レンジ機能の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 
+0

はおそらくありません、:shortBubbleSort(ドライブ) –

+0

は、私は簡単な例を試してみたと私は掲示ソリューションは、動作しているようです。 @Sandyの言葉を見てみましょう:) –

関連する問題