私はたくさんの質問をしていましたが、ソート方法のキーに2つの引数を与える方法を見つけることができませんので、 。python、比較関数の2つの引数を持つソートリスト
例:
class FruitBox():
def __init__(self, weigth, fruit_val):
self.weigth = weigth
self.fruit_val = fruit_val
私はfruit_valでFruitBoxを比較したい、しかし!また、彼らは重い箱は他よりも大きいです。
だから、次のようになります。
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)]
は、2つの引数を持つ関数を送信するためにそこの方法です
def sorted_by(a,b):
#logic here, I don't know what will be yet
とI do
boxes.sort(key=sorted_by)
それはスロー:
Traceback (most recent call last):
File "python", line 15, in <module>
TypeError: sort_by_b() missing 1 required positional argument: 'b'
はどのようにして、ソートのキーに二つの引数を与えることができますか?
ソートしたい2つのキーがどのようなものですと? –
これは不明です。 2つの議論は何ですか? –
@DanielRoseman私は比較(a、b)関数を望んでいました。受け入れられた答え –