gpt4 book ai didi

Python Sort 方法无法正确排序分数

转载 作者:行者123 更新时间:2023-12-01 03:57:57 26 4
gpt4 key购买 nike

我有一个元组列表,我想根据元组中两个元素的分数进行排序。我遇到的问题是,Python 的列表 sort() 方法似乎不适用于分数。

Before: A: [(4, 1, 0), (4, 1, 1), (1, 1, 2), (4, 7, 3), (2, 4, 4), (1, 4, 5), (3, 1, 6), (2, 1, 7), (3, 9, 8), (1, 6, 9)]
After: A: [(1, 6, 9), (1, 4, 5), (3, 9, 8), (2, 4, 4), (1, 1, 2), (4, 7, 3), (4, 1, 0), (4, 1, 1), (3, 1, 6), (2, 1, 7)]

进行排序的代码:

print("A: " + str(A))
A.sort(key=lambda tup: long(tup[1]/tup[0]), reverse=True)
print("A: " + str(A))

我认为根据上面的代码,元素(1,1,2)和元素(4,7,3)应该交换,因为7/4 > 1/1。我也很确定最后的所有分数都是错误的,这让我认为它只是进行整数除法和舍入。我认为将其转换为 long 可能会解决此问题,但事实并非如此。

最佳答案

在 Python 2 / 中,对整数进行整数除法(截断结果)。您尝试做的是将结果转换为 long,但除法已经完成并且信息丢失。尝试仅转换第一个参数,并将其转换为 float :

A.sort(key=lambda tup: float(tup[1])/tup[0], reverse=True)

/ 现在在 Python 3 中更改为始终进行浮点除法。

关于Python Sort 方法无法正确排序分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com