2017-03-09 92 views
0

我試圖打開一個CSV文件,從字符串值轉換爲整數,所以我可以對列表進行排序。目前,當我對列表進行排序時,我得到的結果是"[[], ['190'], ['200'], ['250'], ['350'], ['90']]"。這是我的代碼。在列表中的整數字符串轉換蟒蛇

import csv 

def bubbleSort(scores): 
    for length in range(len(scores)-1,0,-1): 
     for i in range(length): 
      if scores[i]>scores[i+1]: 
       temp = scores[i] 
       scores[i] = scores[i+1] 
       scores[i+1] = temp 


with open ("rec_Scores.csv", "rb") as csvfile: 
    r = csv.reader(csvfile) 
    scores = list(r) 


bubbleSort(scores) 
print(scores) 

這可能是很容易解決,但我還是新的Python因此,如果有人可以幫助我解決這個問題,將不勝感激。

+0

'分數=名單(R)'應改爲'分數= [[INT(x)如果x.isdigit()否則x對於在行中的x]在r中的行]'。 – Abdou

回答

0

您需要添加scores_int = [INT(分)爲評分分值爲了字符串轉換數字在你的分數列表爲int數字。這是你的代碼應該是什麼樣子:

導入CSV

def bubbleSort(scores): 
    for length in range(len(scores)-1,0,-1): 
    for i in range(length): 
     if scores[i]>scores[i+1]: 
      temp = scores[i] 
      scores[i] = scores[i+1] 
      scores[i+1] = temp 


with open ("rec_Scores.csv", "rb") as csvfile: 
r = csv.reader(csvfile) 
scores = list(r) 
scores_int = [int(score) for score in scores] 

    bubbleSort(scores_int) 
    print(scores) 
+0

當添加我得到的錯誤消息「類型錯誤:INT()參數必須是字符串或數字,而不是‘列表’」 –

+1

嘗試scores_int = [INT(評分[0]),用於分數得分] –