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
Puis j'ai fais la même chose mais cette fois pour les y en remplacant "operator.itemgetter(0)" par "operator.itemgetter(1)"
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)
Jusque là tout va bien ^^
A présent je voulais trier la liste grâce au produit scalaire, j'ai créé cette fonction :
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()"
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]
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)Mais j'ai toujours cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 l.sort( key = produitScalaire( (3, 2) ) ) print(l)
Je vous remercie d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 "print(l) ^ SyntaxError: invalid syntax"
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 ^^
Partager