Bonjour !

Je suis actuellement sur un projet pour mes études d'informatique. Le projet consiste de trier une liste de points (x, y) (avec les x et y positif et entier) et de les comparer pour garder un maximum de points qui possèdent une distance supérieur à un diamètre donné ("r").
J'ai donc trié la liste avec les x croissant puis en renversant une copie de la liste initial

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
l1.sort( key = operator.itemgetter(0) )
l2 = list(l1)
l1 = traitementPoints(l1, r)
 
l2.reverse()
l2 = traitementPoints(l2, r)
Puis j'ai fais la même chose mais cette fois pour les y en remplacant "operator.itemgetter(0)" par "operator.itemgetter(1)"
Jusque là tout va bien ^^

A présent je voulais trier la liste grâce au produit scalaire, j'ai créé cette fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
def produitScalaire(u, v):
	return u[0]*v[0] + u[1]*v[1]
Mais là où je n'arrive pas à trouver de réponse sur internet c'est pour le passage de la fonction sur la fonction "sort()"

J'ai donc essayer d'écrire (avec (3,2) un vecteur de référence) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
l.sort( key = lambda x: produitScalaire( (3, 2), x ) )
print(l)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
l.sort( key = produitScalaire( (3, 2) ) )
print(l)
Mais j'ai toujours cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
"print(l)
        ^
SyntaxError: invalid syntax"
Je vous remercie d'avance pour votre aide !
Je suis nouveau sur ce forum (qui est mon premier forum ^^), j'espère ne pas avoir fais de faux pas sur la création du sujet ou autre , sinon j'essayerai de les corriger ^^