IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Aide demandée pour sélection de données dans une liste


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Enseignant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Points : 32
    Points
    32
    Par défaut Aide demandée pour sélection de données dans une liste
    Bonsoir à tous,

    Voilà j'ai une liste de coordonnées de cette forme (c'est un extrait) :

    [..., (594, 798), (595, 798), (596, 798), (597, 798), (598, 798), (599, 798), (0, 799), (1, 799), (2, 799), (3, 799), (4, 799), (5, 799), (6,799), (7, 799), (8, 799), (9, 799), (10, 799), (11, 799), (12, 799), (13, 799), (14, 799), (15, 799), (16, 799), (17, 799), (18, 799), (19, 799), (20, 799), (21, 799), (22, 799), (23, 799), (24, 799), (25, 799), (26, 799), (27, 799), (28, 799), (29, 799), (30, 799), (31, 799), (32, 799), (33, 799), (34, 799), (35, 799), (36, 799), (37, 799), (38, 799), (39, 799), (40, 799), (41, 799), (42, 799), (43, 799), (44, 799), (45, 799), (46, 799), (47, 799), (48, 799), (49, 799), (50, 799), (51, 799), (52, 799), (53, 799), (54, 799), (55, 799), (56, 799), (57, 799), (58, 799), (59, 799), (60, 799), (61, 799), (62, 799), (63, 799), (64, 799), (65, 799), (66, 799), (67, 799), (68, 799), (69, 799), (70, 799), (71, 799), (72, 799), (73, 799), (74, 799), (75, 799), (76, 799), (77, 799), (78, 799), (79, 799), (80, 799), (81, 799), (518, 799), (519, 799), (520, 799), (521, 799), (522, 799), (523, 799), (524, 799), (525, 799), (526, 799), (527, 799), (528, 799), (529, 799), (530, 799), (531, 799), (532, 799), (533, 799), (534, 799), (535, 799), (536, 799), (537, 799), (538, 799), (539, 799), (540, 799), (541, 799), (542, 799), (543, 799), (544, 799), (545, 799), (546, 799), (547, 799), (548, 799), (549, 799), (550, 799), (551, 799), (552, 799), (553, 799), (554, 799), (555, 799), (556, 799), (557, 799), (558, 799), (559, 799), (560, 799), (561, 799), (562, 799), (563, 799), (564, 799), (565, 799), (566, 799), (567, 799), (568, 799), (569, 799), (570, 799), (571, 799), (572, 799), (573, 799), (574, 799), (575, 799), (576, 799), (577, 799), (578, 799), (579, 799), (580, 799), (581, 799), (582, 799), (583, 799), (584, 799), (585, 799), (586, 799), (587, 799), (588, 799), (589, 799), (590, 799), (591, 799), (592, 799), (593, 799), (594, 799), (595, 799), (596, 799), (597, 799), (598, 799), (599, 799)]

    On voit qu'il y a une rupture (81, 799) <==> (518, 799), je voudrais remplir une liste (toto par exemple) avec toutes les coordonnées x non contigues (je ne sais pas si c'est comme ça que l'on dit) et ce par une boucle . Ce sont les coordonnées non contigues (les ruptures) qui m'intéressent .

    J'ai essayé différentes choses, sans succès ... . Pouvez-vous m'aider à trouver une solution fonctionnelle pour extraire ces données ? (--> en sachant qu'on peut avoir des coordonnées non contigues à tous les endoits dans la liste) . Cette nouvelle liste doit absolument comporter (notamment) les données comme ceci ==> [..., (81, 799), (518, 799), ...] ou [..., [(81, 799), (518, 799)], ...] .

    Merci d'avance .

    a+

    PS : si une solution du style :
    toto=[CoordXcontigues for CoordXcontigues in liste if ....], ce serait formidable ! .

  2. #2
    Nouveau membre du Club
    Enseignant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Bon et bien je me repond à moi-même, j'ai finalement trouvé (essai avec un extrait de liste) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> bn=[(78, 799), (79, 799), (80, 799), (81, 799), (518, 799), (519,
    799), (520, 799), (521, 799), (522, 799), (523, 799)]
    >>> nouv_liste=[]
    >>> for i in range(0, len(bn)) :
    ...     if bn[i][0]>bn[i-1][0]+2 :
    ...         nouv_liste.append((bn[i-1], bn[i])) # ou nouv_liste.append([bn[i-1], bn[i]])
    ...         print bn[i-1], bn[i]
    (81, 799) (518, 799)
    >>> nouv_liste
    [((81, 799), (518, 799))] ou [[(81, 799), (518, 799)]]
    a+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    C'est pas très esthétique mais ça marche (en reprenant ton extrait de liste):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> nouv_liste=[a for a in bn[1:-1] if (a[0]+1,a[1]) not in bn or (a[0]-1,a[1]) not in bn]
    >>> nouv_liste
    [(81, 799), (518, 799)]
    Les balises [1:-1] permettent d'éviter de retrouver le 1er et dernier élément de la liste bn dans nouv_liste...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Données incohérentes pour renvoi de données dans une listbox
    Par miron_fds dans le forum VBA Access
    Réponses: 12
    Dernier message: 08/07/2011, 01h15
  2. Réponses: 4
    Dernier message: 11/03/2011, 14h45
  3. Question sur la sélection de donnée dans une base
    Par Masmeta dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/04/2008, 16h16
  4. [1.x] problème pour reprendre des données dans une DB
    Par phoelis1 dans le forum Symfony
    Réponses: 4
    Dernier message: 02/04/2008, 11h54
  5. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo