Je regardais beaucoup et lisais beaucoup de questions, mais je n'arrive pas à comprendre comment donner deux arguments à la clé de la méthode de tri, donc je peux faire une comparaison plus complexe .python, trier la liste avec deux arguments dans la fonction de comparaison
Exemple:
class FruitBox():
def __init__(self, weigth, fruit_val):
self.weigth = weigth
self.fruit_val = fruit_val
Je veux comparer le Fruitbox par fruit_val, mais! De plus, ils sont plus lourds que les autres.
Il serait donc:
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
Résultat attendu: =>[FruitBox(2,4),FruitBox(3,4),FruitBox(1,5),FruitBox(2,5)]
Est-il possible d'envoyer une fonction avec 2 arguments, quand je fais quelque chose comme
def sorted_by(a,b):
#logic here, I don't know what will be yet
et moi
boxes.sort(key=sorted_by)
Il lance:
Traceback (most recent call last):
File "python", line 15, in <module>
TypeError: sort_by_b() missing 1 required positional argument: 'b'
Comment puis-je donner deux arguments à la clé de tri?
Quelles sont les deux clés que vous souhaitez trier avec? –
Ce n'est pas clair. Quels sont les deux arguments? –
@DanielRoseman Je voulais une fonction de comparaison (a, b), voir la réponse acceptée –