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 :

multiplication de listes


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut multiplication de listes
    Bonjour,

    Je me permets de vous solliciter ne trouvant pas de solution:
    j'ai une liste que je split en fonction du signe + : cf code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    liste=['papa+152+133',
    'mama+12',
    'Viviv+500+45+38']
    #print liste[0]
    for x in liste:
    	transfo=x.split('+')
    	print transfo

    voila mon resultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ['papa', '152', '133']
    ['mama', '12']
    ['Viviv', '500', '45', '38']

    Je cherche a additionner ou multiplier automatiquement ma list de sorte que ma nouvelle liste contienne:
    ['papa', 'papa+152','papa+152+133']
    ['mama','mama+12']
    etc...

    j ai teste ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    liste=['papa+152+133',
    'mama+12',
    'Viviv+500+45+38']
    #print liste[0]
    for x in liste:
    	transfo=x.split('+')
    	test=[transfo[0]]
    	test+=[['+'.join(transfo[0:2])]]
    	test+=[['+'.join(transfo[0:3])]]
    	print test
    voila mon resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ['papa', 'papa+152', 'papa+152+133']
    ['mama', 'mama+12', 'mama+12']
    ['Viviv', 'Viviv+500', 'Viviv+500+45']
    le premier probleme est que ce n est pas automatique, je suis oblige de mentionner chaque index de ma ligne et de plus ma deuxime liste et fausse vu que ca repete ['mama+152'] a deux reprises.

    Si quelqu un peut m aider?
    merci beaucoup pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Partez de ['papa', '152', '133'].
    Pour construire ['papa', 'papa+152','papa+152+133'], il faut commencer par itérer sur les éléments de la liste de départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste = ['papa', '152', '133']
    for x in range(len(liste)):
        print (liste[x])
    Puis remplacer liste[x] par un début suivi de liste[x]:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    debut = ''
    for x in range(len(liste)):
        liste[x] = debut + liste[x]
    puis mettre à jour debut pour l'itération suivante:
    et on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> liste
    ['papa', 'papa+152', 'papa+152+133']
    >>>
    Puis comme vous avez une liste de listes, enrober cela dans une autre boucle qui va traiter chacune des listes de cette façon là.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    canon, merci beaucoup

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    Salut wiztricks,

    J'ai une derniere question.
    si on reprend l'exemple ci-dessus, notre nouvelle liste est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    liste
    ['papa', 'papa+152', 'papa+152+133']
    Apres ca je parse un fichier xml et je regarde si papa est dans le fichier xml alors j'ajoute dans ce fichier xml papa+152. L'idee etant apres de rechercher dans ce fichier xml papa+152 pour ajouter papa+152+153....
    J ai du mal a automatiser cela, j'utilise list1[0] puis liste[1]....Sachant que j'ai en realite une liste de listes de tailles toutes de tailles variables, cette approche n'est pas top.
    Aurais tu une piste?

    Merci beaucoup par avance

  5. #5
    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,

    juste pour le fun et l'indigestion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> liste = ['papa+152+133', 'mama+12', 'Viviv+500+45+38']
    >>> [['+'.join(j[:k+1]) for k in range(len(j))] for j in [i.split('+') for i in liste]]
    [['papa', 'papa+152', 'papa+152+133'], ['mama', 'mama+12'], ['Viviv', 'Viviv+500', 'Viviv+500+45', 'Viviv+500+45+38']]

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 47
    Points : 12
    Points
    12
    Par défaut
    merci BufferBob,

    c bien plus court que ce que j'ai fait....et plus complexe mais merci beaucoup pour cet apport.

    a partir du resultat de la liste, je cherche a ajouter chacun des elements de ma liste dans un fichier xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	test=[['papa', 'papa+152', 'papa+152+133'], ['mama', 'mama+12'], ['Viviv', 'Viviv+500', 'Viviv+500+45', 'Viviv+500+45+38']]
    	for hg8 in test:
    		for hg9 in root.xpath("//Node"):#parse mon fichier xml
    			if hg8[0] == hg9.get('Id'):
    				k = ET.SubElement(hg9, "Node")#acces aux elements de mon fichiers xml
    				k.set("Id", hg8[1])
    si la condition est remplie j'ecris dans mon fichier xml papa+152 apres papa, mama+12 apres mama et vivi+500 apres vivi. Ainsi apres papa+152 je voudrais ajouter papa+152+133 et ceci pour toutes mes listes de listes.
    Je n'arrive pas a automatiser ce processus a changer l'index de mes listes automatiquement...

    Aurais-tu une idee?
    Merci beaucoup

Discussions similaires

  1. [C-Python] Manipulation de tableau, iterateur, liste etc
    Par Djobird dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 20/04/2011, 16h50
  2. [AC-2003] Selection multiple dans liste
    Par RoZyk dans le forum IHM
    Réponses: 4
    Dernier message: 17/11/2010, 10h49
  3. Créer table de multiplication en liste chaînée
    Par persiano dans le forum Pascal
    Réponses: 3
    Dernier message: 26/04/2010, 14h39
  4. Multiplication de listes
    Par nanoute dans le forum Prolog
    Réponses: 2
    Dernier message: 09/05/2007, 22h22
  5. sélection multiple ds liste de choix
    Par tyler4012 dans le forum Access
    Réponses: 4
    Dernier message: 02/06/2006, 21h17

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