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 :

extraire des sous listes d'une liste en utilisant un critère de discontinuité des valeurs de la liste..


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut extraire des sous listes d'une liste en utilisant un critère de discontinuité des valeurs de la liste..
    Bonjour à tous !
    Je suis débutante en Python et j'ai besoin d'un petit coup de main..

    j'ai un logiciel qui m'extrait des données sous forme de chaine de caractères comme ci dessous :

    oooooooooooooooooooooooooooooooooooooooooooooooooooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiMMMMMMMMMMMMMMMMMMMMMooooooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMMMMMMMMMMMMMMMoooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    Je souhaiterai transformer cette chaine de caractères afin de ne garder que les positions de départ et fin des groupes de lettres M : liste en sortie du type [[56,76],[85,105]….]

    J'ai écrit le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    """renvoyer les position de la lettre M dans la liste TM """
    trouver = lambda mot, lettre: [i for i, car in enumerate(mot) if car==lettre]
    TM=  trouver(text, 'M')
     
    """ajouter +1 à chaque valeur de la liste TM pour connaitre la position"""
    TMc=[]
    for item in TM :    
       TMc.append(item +1)
       TMc  
    print(TMc)
    j'obtiens la liste suivante :

    [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246]
    je voudrais maintenant découper la liste en autant de sous listes qu'il y a de groupes continus mais là je suis bloquée j'ai essayer différentes choses mais sans résultats

    Help.... je vous remercie

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Citation Envoyé par CheresRose Voir le message
    je voudrais maintenant découper la liste en autant de sous listes qu'il y a de groupes continus mais là je suis bloquée j'ai essayer différentes choses mais sans résultats

    Si vous balayez la chaîne de caractères s = 'aaabbbbccccc', les suites de caractères identiques vérifient caractère précédent identique au caractère courant.
    Et une discontinuité se traduira par caractère précédent différent du caractère courant.

    Ce qui se code (par exemple) avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> s = 'aaabbbbccccc'
    >>> lastch = s[0]
    >>> for i in range(len(s)):
    ...     if lastch != s[i]:
    ...        print(i)
    ...        lastch = s[i]
    ...
    3
    7
    A adapter en fonction de ce que vous cherchez à obtenir.

    Et si vous débutez avec Python, c'est le genre de construction qu'on apprend à faire avec n'importe quel tuto.
    (et si vous avez ouvert un tuto. et que vous n'avez pas retenu comment faire ce genre de petit code là, vous avez intérêt a y passer du temps car tout va être compliqué).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2020
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 114
    Points : 85
    Points
    85
    Par défaut
    Salut,
    et si tu faisais "si (n+1 - n) > 1 alors mon groupe est fini", donc tant que c'est =1 la suite est continue donc j'écris dans la liste n.
    C'est un peu ce sur quoi je bricole là https://www.developpez.net/forums/d2.../#post11587340.

    Bon le code casse pas des patates, mais le principe est là, à mon sens. puis je suis pas sur de comprendre ta demande de traitement qui change, tu commence par les valeurs de position de départ et de fin pour donner un code et une demande sur une liste continue? Peut être est ce deux traitement différent ?

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par CheresRose Voir le message
    Je souhaiterai (...) ne garder que les positions de départ et fin des groupes de lettres M : liste en sortie du type [[56,76],[85,105]….]
    une méthode possible avec des regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import re
    TMC = [[i.start(), i.end()] for i in re.finditer(r'M+', text)]
    et le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [[55, 76], [84, 105], [115, 136], [197, 218], [225, 246]]

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Ce qui se code (par exemple) avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> s = 'aaabbbbccccc'
    >>> lastch = s[0]
    >>> for i in range(len(s)):
    ...     if lastch != s[i]:
    ...        print(i)
    ...        lastch = s[i]
    ...
    3
    7
    Oh c'est élégant, cette façon de faire !

    Quant à moi voici ma proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    text = """oooooooooooooooooooooooooooooooooooooooooooooooooooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiMMMMMMMMMMMMMMMMMMMMMooooooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMMMMMMMMMMMMMMMoooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii """
     
     
    def get_list(txt,letter):
            liste = []
            id, first, second = 0,0,0
            for l in txt:
                    if l == letter and txt[id-1]!=letter:
                            first = id+1
                    elif l == letter and txt[id+1]!=letter:
                            second = id+1
                    elif l!=letter and first+second:
                            liste.append([first,second])
                            first, second = 0,0
                    id+=1
            print(liste)
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> get_list(text,"M")
    [[56, 76], [85, 105], [116, 136], [198, 218], [226, 246]]

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import re
    TMC = [[i.start(), i.end()] for i in re.finditer(r'M+', text)]
    Oh ! Magnifique !

    Je rajouterais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ]import re
    TMC = [[i.start()+1, i.end()+1] for i in re.finditer(r'M+', text)]

  7. #7
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 863
    Points : 1 511
    Points
    1 511
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Oh ! Magnifique !

    Je rajouterais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ]import re
    TMC = [[i.start()+1, i.end()+1] for i in re.finditer(r'M+', text)]
    Bonjour,
    Je laisserai plutôt le code de Bufferbob tel qu'il est ..

    à moins que l'on souhaite la 2eme borne correspond aux derniers M rencontré.
    Dans ce cas ce serait plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TMC = [[i.start(), i.end()-1] for i in re.finditer(r'M+', text)]
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Super ,
    j'ai testé 2 façons de faire qui fonctionnent ! merci à tous !

    bonne journée

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par BufferBob Voir le message
    une méthode possible avec des regex
    Héhé, t'aimes bien les regex toi. Partout où tu passes tu nous mets une regex. "je voudrais parcourir un graphe" "ok, pas de souci, voici une regex qui te fait ça".

    Ceci dit, ta solution est superbe
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Oh ! Magnifique !

    Je rajouterais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ]import re
    TMC = [[i.start()+1, i.end()+1] for i in re.finditer(r'M+', text)]


    S'il fallait changer quelque chose à la belle solution de @BufferBob, j'écrirais :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    text = "oooooooooooooooooooooooooooooooooooooooooooooooooooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiMMMMMMMMMMMMMMMMMMMMMooooooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMMMMMMMMMMMMMMMoooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
     
    tmc = [[i.start(), i.end()-1] for i in re.finditer(r'M+', text)]
     
    for lst in tmc:
        print(text[lst[0]], text[lst[1]])
     
    """
    M M
    M M
    M M
    M M
    M M
    """

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  11. #11
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 863
    Points : 1 511
    Points
    1 511
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Citation Envoyé par danielhagnoul Voir le message


    S'il fallait changer quelque chose à la belle solution de @BufferBob, j'écrirais :
    +1
    <sourire> (voir ma réponse en #7)
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  12. #12
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Héhé, t'aimes bien les regex toi. Partout où tu passes tu nous mets une regex. "je voudrais parcourir un graphe" "ok, pas de souci, voici une regex qui te fait ça".
    haha je me suis dit la même après avoir posté, je suis devenu promoteur regex

  13. #13
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Bonsoir,

    Il y a aussi la possibilité d'utiliser groupby du module itertools.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    In [1]: from itertools import groupby                                          
     
    In [2]: test = "oooooooooooooooooooooooooooooooooooooooooooooooooooooooMMMMMMMM
        ...: MMMMMMMMMMMMMiiiiiiiiMMMMMMMMMMMMMMMMMMMMMooooooooooMMMMMMMMMMMMMMMMMMM
        ...: MMiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMMMMMMMM
        ...: MMMMMMMMMMMMMoooooooMMMMMMMMMMMMMMMMMMMMMiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
        ...: iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
        ...: iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
        ...: iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
        ...: iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"               
     
     
    In [3]: v = 0                                                                  
     
     
    In [4]: for group in 
    [list(g) for k, g in groupby(test)]: 
        ...:     v += len(group) 
        ...:     print(v) 
        ...:                                                                        
    55
    76
    84
    105
    115
    136
    197
    218
    225
    246
    544
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  14. #14
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Il y a aussi la possibilité d'utiliser groupby du module itertools.
    N'essaye pas. Quoi que tu fasses, tu ne pourras pas être plus concis et plus élégant que la solution de BufferBob. Moi j'ai même pas tenté.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  15. #15
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 784
    Points : 7 043
    Points
    7 043
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    N'essaye pas. Quoi que tu fasses, tu ne pourras pas être plus concis et plus élégant que la solution de BufferBob. Moi j'ai même pas tenté.
    J'aime bien lutter contre les regex même si c'est peine perdue...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

Discussions similaires

  1. Extraire des valeurs d'une liste de matrices
    Par ursulinatm dans le forum R
    Réponses: 2
    Dernier message: 11/04/2012, 12h54
  2. Réponses: 5
    Dernier message: 25/01/2011, 20h01
  3. [DLL] Extraire un sous-ensemble d'une application
    Par DSGSLA dans le forum Windows
    Réponses: 9
    Dernier message: 23/03/2010, 10h28
  4. Réponses: 0
    Dernier message: 11/11/2007, 16h04
  5. Extraire des valeurs d'une matrice
    Par Kcyril dans le forum MATLAB
    Réponses: 4
    Dernier message: 23/04/2007, 15h59

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