【发布时间】:2017-07-29 07:46:40
【问题描述】:
我正在尝试让我的程序对 csv 文件中记录的分数进行排序,我这样做的过程是将 csv 文件读入列表,对列表进行冒泡排序,然后用新的覆盖 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 中实现排序,所以任何帮助都会很棒,谢谢。
【问题讨论】:
-
您需要将值从字符串转换为整数。当您比较字符串时,您是按字典顺序(即按字母顺序)比较它们,而不是按数字比较。所以
100出现在9之前,因为9比1“大” -
你能告诉我怎么做吗?我对 Python 还是很陌生,谢谢。
标签: python python-2.7 sorting csv