列表正确排序一次,然后排序错误

时间:2015-11-04 01:20:08

标签: python sorting

我已经对csv文件进行了排序,并将其转换为列表列表。我现在需要根据特定索引对列表进行排序。

以下代码块有效:

def highestPoint(copiedList):

    copiedList.sort(key=lambda x: x[2], reverse=True)

    date = copiedList[0][0]
    value = float(copiedList[0][2])

    print("\nThe day where the stock reached its highest point is",
          date, "with" " a value of {:,.2f}".format(value))

现在,我假设我可以复制并粘贴这段代码,替换两个位置中的[2],以便对列表进行排序并打印结果。

显然,print语句中的单词和过程的名称都会更改,但其他所有内容都是相同的。

我们有样本输出,我的答案也不一样。第一个代码有效,但其他代码没有。

每个代码块都是自己的过程,每次都传递copiedListcopiedList只是原始dataList的浅表副本。

1 个答案:

答案 0 :(得分:0)

我认为当您在文件中读取时没有将str转换为float,因此sort函数可能无效。

例如:

print('10' > '5')
False

我建议您将数字转换为浮点数而不是排序

当您按字母顺序对字符串进行排序时,它将如下所示:

numString = ["1","5000","3","6","30","4","2","200"]
print(sorted(numString))

['1', '2', '200', '3', '30', '4', '5000', '6']