fr . comp . lang . python


Service Usenet Gratuit - You The Net .Com Consultez les groupes de news usenet nntp avec www.youthenet.com Postez et suivez voos fils de discussions gratuitement avec you the net .com le service gratuit de news en ligne

Re: Classer une liste d'objets sur Fr Comp Lang Python



Groupes les plus fournis
usenet divers rec photo misc bavardages linux lettres langues-anciennes latin petites-annonces informatique materiel usenet prison rec arts plastiques misc engueulades petites-annonces photo rec son-image video materiel comp applications sgbd petites-annonces informatique systemes gps comp algorithmes lettres langues-anciennes grec comp developpement agl windev comp sys mac rec arts litterature comp infosystemes www auteurs rec son-image video realisation


Derniers posts youthenet
Re: Démission pour création d'entreprise commerce ou service Que pensez-vous de la doctrine de James Madison ? Re: envoi des données à un serveur html la demeure du chaos Re: Alice au pays de Free (d'après la t ribune) Re: Est-ce ue violation de la GPL? Re: L'ultra libéralisme du chemin de fer prôné par Sarkozy... Président langue de bois ? la compagnie de l'autre

actualité

Un ingénieur réconcilie Google et Yahoo
The Inquirer - Il y a 12 heures
Boss est aussi équipé de l'API Python qui accède à l'interface de programmation d'applications de Yahoo. Sur son blog, V. Singh décrit le Google App Engine ...
source

actualité

Il se balade à Bruxelles avec son python autour
RTL Info.be - 31 juil 2008
Des policiers ont interpellé jeudi, sur la voie publique, chaussée d'Helmet, le propriétaire d'un python mesurant un mètre et demi qui se promenait avec son ...
Serpents en cavale 7sur7
8 autres articles
source

Accueil |  Ajouter aux Favoris |  Inscription |  connexion |  Flux RSS de fr.comp.lang.python |

fr . comp . lang . python

Re: Classer une liste d'objets



accueil . fr . comp . lang . python




Re: Classer une liste d'objets

   
Sujet: Re: Classer une liste d'objets
De: see.signature (l' arobase) no.spam (Eric Brunel)
Groupes: fr.comp.lang.python
Organisation: les newsgroups par Orange
Date: 30. Jun 2008, 09:49:30
On Fri, 27 Jun 2008 23:32:07 +0200, Laurent Claessens  <moky.math@gmail.com> wrote:

        Bonjour



   J'ai une liste d'instances d'une classe que j'ai créé. Typiquement,

-----------------------------------------

class Point(object):
   def __init__(self,x,y):
      self.x = x
      self.y = y

P = Point(1,3)
Q = Point(2,7)
liste = []
liste.append(P)
liste.append(Q)

---------------------------------------------------------

Je voudrais maintenant classer la liste par ordre de l'attribut x des
objets. Je vois comment je ferais ça de façon très piétonne et très
peu optimisée, mais est-ce qu'il y a moyen de faire vite, et propre ?

Et c'est un travail pour... decorate-sort-undecorate!

Les solutions à base de __cmp__ déjà données fonctionnent, mais ne sont  quelquefois pas applicables: imagine qu'à un endroit de ton appli, tu aies  besoin de trier par coordonnées x, et à un autre endroit par coordonnées  y... Vu que tu ne peux pas avoir deux méthodes __cmp__, tu es battu.

Donc, pour le cas général, la façon de faire consiste à:
- "décorer" la liste: tu construit une liste de tuples contenant d'abord  la valeur sur laquelle tu veux trier, puis l'objet d'origine.
- trier la liste "décorée"; Python triant les tuples en fonction de leurs  éléments (de gauche à droite), tu obtiens une liste triée comme tu veux,  avec les valeurs pour le tri en trop.
- virer les "décorations" de la liste pour retrouver des objets d'origine,  dans l'ordre que tu veux.

Sur ton exemple:

liste_a_trier = [(p.x, p) for p in liste]
liste_a_trier.sort()
liste = [p for _, p in liste_a_trier]

Et voilà!

Je ne vous cache pas que dans le cas concret que j'ai en tête,  c'est
plus imbriqué; plutôt genre

-----------------------------------------

class Point(object):
   def __init__(self,x,y):
      self.x = x
      self.y = y

class ligne(object):
   def __init__(self,P,Q):
      self.depart = P
      self.arrive = Q

---------------------------------------------------------

Ensuite, j'ai une liste de lignes que je voudrais classer par
ordonnées du point de départ, càd si L est une ligne, je voudrais
classer en fonction de

L.depart.x

Je suppose que si j'ai une solution au premier problème, je pourrai en
déduire une au second problème, ainsi que des cas plus compliqués.

Tu supposes bien! Je te laisse faire; ça ne devrait pas te poser beaucoup  de problème...

HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in  'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"


Date Sujet  Auteur
27.06. * Classer une liste d'objetsLaurent Claesse
28.06. +* Re: Classer une liste d'objetsKobayashi
28.06. |+- Re: Classer une liste d'objetsLaurent Claesse
28.06. |`- Re: Classer une liste d'objetsKobayashi
30.06. `* Re: Classer une liste d'objetsEric Brunel
30.06.  +* Re: Classer une liste d'objetsNicolasP
01.07.  |`* Re: Classer une liste d'objetsEric Brunel
01.07.  | `* Re: Classer une liste d'objetsNicolasP
01.07.  |  +* Re: Classer une liste d'objetsKobayashi
01.07.  |  |`* Re: Classer une liste d'objetsNicolasP
01.07.  |  | `* Re: Classer une liste d'objetsBruno Desthuill
01.07.  |  |  `- Re: Classer une liste d'objetsNicolasP
01.07.  |  `- Re: Classer une liste d'objetsBruno Desthuill
30.06.  `- Re: Classer une liste d'objetsBruno Desthuill
Derniers articles
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs soc politique soc environnement soc religion soc economie misc transport rail usenet usages lettres langue francaise rec arts musique classique sci sociologie

Derniers messages
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs sci philo soc religion soc politique comp ordinosaures soc environnement rec arts musique classique soc economie lettres langue francaise rec son-image video materiel

actualité

Un ingénieur réconcilie Google et Yahoo
The Inquirer - Il y a 12 heures
Boss est aussi équipé de l'API Python qui accède à l'interface de programmation d'applications de Yahoo. Sur son blog, V. Singh décrit le Google App Engine ...
source

actualité

Des engagements « pour vivre à Saint-Python, avec et de La Selle »
La Voix du Nord - 30 juil 2008
Cette population, le maire entend l'amener à « vivre à Saint-Python, pas seulement y dormir ». Il entend, pour ce faire, lui assurer un habitat correct, ...
source


 




Copyright 2008 ©  - YouTheNet.com

| natürlich freien Radikalen |