我看了很多书,读了很多问题,但是我不知道如何给排序方法的键赋予两个参数,所以我可以做一个更复杂的比较。
示例:class FruitBox():
def __init__(self, weigth, fruit_val):
self.weigth = weigth
self.fruit_val = fruit_val
我想用水果来比较水果盒,但是!而且它们的箱子比其他的更重。
所以应该是:f1 = FruitBox(2,5)
f2 = FruitBox(1,5)
f3 = FruitBox(2,4)
f4 = FruitBox(3,4)
boxes = [f1,f2,f3,f4]
boxes.sort(key = ???) # here is the question
预期结果:
=>;[FruitBox(2,4),FruitBox(3,4),FruitBox(1,5),FruitBox(2,5)]
有没有一种方法可以发送一个带有两个参数的函数,当我这样做的时候def sorted_by(a,b):
#logic here, I don't know what will be yet
我知道boxes.sort(key=sorted_by)
它抛出:Traceback (most recent call last):
File "python", line 15, in
TypeError: sort_by_b() missing 1 required positional argument: 'b'
我怎么能给这把钥匙两个论点呢?