2017-03-09 138 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]),用于分数得分] –