首页 > 解决方案 > sorted() 不是排序列表

问题描述

我有一个由子列表组成的列表,我想从子列表中找到第二高的数字,所以我使用了排序功能。但是,该列表仍未排序。

all_bids = [zip(*each_entry)[4]]
allbids = sorted(all_bids)
print(allbids)

输出:

all_bids = [('10.00', '7.50', '12.50', '20.00')]
alibis = [('10.00', '7.50', '12.50', '20.00')]

预期输出:

[('7.50', '10.00', '12.50', '20.00')]

标签: pythonsorting

解决方案


我不知道你在做什么,但我可以找出相应的all_bids排序(首先是最小的项目)。为了得到相反的结果,你可以做

sorted(*each_entry()[4], reverse=True) 

最后要解决你的问题,你必须创建一个排序函数,并使用key参数。

编辑 我试过你的代码,这给了我你想要的输出。

x = sorted(('10.00', '7.50', '12.50', '20.00'), key=float)
    print(x)

推荐阅读