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 :

Combiner deux tableaux ou plus dans le meme tableau


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 24
    Points
    24
    Par défaut Combiner deux tableaux ou plus dans le meme tableau
    Bonjour,
    Je sollicite votre aide je galère un peu avec python !! Merci d avance, voici mon probleme
    A partir d'un fichier résultat, je dois extraire certaines colonnes, et les mettre dans le meme fichier, c'est pourcela je veux les mettre dans le meme tableau. vu la complexité de mes données, j'ai du les séparer en 3 tableaux par contre j'arrive pas à combiner les trois tableaux dans un seul.
    Merci pour votre aide

    voici ce que j'ai fait

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    g=open(repertoire+ "nomfich",'r')
    b=g.readlines()
    c=range(27,181,1)
    array=[]
    for i in c:
    	array.append(b[i].split())
     
     
    a1=array[1:(48+3)]
    a2=array[(48+6):154:2]
    a3=array[(48+7):155:2]
     
    for x,elt in enumerate(a1):
    	a1noeud=elt[0]
    	a1xx=elt[1]
    	a1yy=elt[2]
    	a1depx=elt[3]
    	a1depy=elt[4]
    	table=[]
    	table.append(a1noeud)
    	table.append(a1xx)
    	table.append(a1yy)
    	table.append(a1depx)
    	table.append(a1depy)
    	#print table
    for y,elt2 in enumerate (a2):
    	a2noeud=elt2[0]
    	a2convmis=elt2[3]
    	a2contresca=elt2[4]
    	a2prin1=elt2[5]
    	a2prin2=elt2[6]
    	table2=[]
    	table2.append(a2noeud)
    	table2.append(a2convmis)
    	table2.append(a2contresca)
    	table2.append(a2prin1)
    	table2.append(a2prin2)
    	#print table2
    for z,elt3 in enumerate (a3):
    	a3prin3=elt3[0]
    	a3vmissg=elt3[1]
    	a3trsig=elt3[2]
    	table3=[]
    	table3.append(a3prin3)
    	table3.append(a3vmissg)
    	table3.append(a3trsig)
    	#print table3

  2. #2
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    I) Utilise la balise [code], pas la balise [quote]*!!!

    II) Donne un exemple de contenu (simple et concis*!) de table, table2 et table3, ainsi que du résultat attendu à partir de ceux-ci (autrement dit, comment tu veux les voir réassemblés).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    en fait, dans mon premier tableau (table) j'ai 5 colonnes (a1noeud,a1xx,a1yy,a1depx,a1depy) et dans le deuxieme tableau (table2) j'ai 5 colonnes aussi (a2noeud,a2convmis,a2contresca,a2prin1,a2prin2) et dans le tableau 3 'ai 3 colonnes (a3prin3,a3vmissg,a3trsig) .
    Ce que je veux faire c'est de créer un tableau de 13 colonnes (5 du 1er tableau, 5du 2eme et 3 du troisième ..)
    J'espere que j'étais plus clair.
    Merci encore

  4. #4
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Ton code comporte une grosse erreur : pour chaque élément de a1 (a2, a3), tu recrées une liste table (table2, table3…), perdant donc le travail déjà effectué…

    De toute façon, si je comprends bien, chaque tableau a1, a2 et a3 comporte 50 éléments (c’est important qu’ils aient tous la même longueur), on va donc utiliser la fonction. zip(), et ne faire qu’une seule boucle.

    De plus, je crois comprendre que table, table2 et table3 ne sont que temporaires (tu ne les réutilises pas ensuite)*? Dans ce cas, autant n’avoir qu’un seul tableau dès le départ…

    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
    g = open(repertoire + "nomfich", 'r')
    b = g.readlines()
    c = range(27, 181)
    array = []
    for i in c:
        array.append(b[i].split())
     
     
    result = []
     
    a1 = array[1:48 + 3]
    a2 = array[48 + 6:154:2]
    a3 = array[48 + 7:155:2]
     
    # zip() va, à chaque itération, renvoyer un tuple contenant un élément
    # de chaque iterable passé en paramètre, jusqu’à ce que tous les éléments
    # du plus petit aient été consommés.
    for e1, e2, e3 in zip(a1, a2, a3):
        # On concatène les éléments voulus de e1, e2 et e3 en une seule liste.
        result.append(e1[:5] + [e2[0]] + e2[3:7] + e3[:3])
     
    # Pour le fun, la même chose en mode "concis" :P (list comprehension):
    result_2 = [e1[:5] + [e2[0]] + e2[3:7] + e3[:3] for e1, e2, e3 in zip(array[1:48 + 3], array[48 + 6:154:2], array[48 + 7:155:2])]

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

Discussions similaires

  1. Gerer deux bases de donnes dans une meme application
    Par skunkies dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/12/2008, 16h03
  2. [Tableaux] plusieurs champs dans une meme variable
    Par crischprolch dans le forum Langage
    Réponses: 4
    Dernier message: 24/07/2007, 17h18
  3. Probleme insertion de deux fiches avec BDE dans un meme projet
    Par jojojojo57 dans le forum Bases de données
    Réponses: 4
    Dernier message: 22/03/2007, 08h55
  4. Réponses: 8
    Dernier message: 16/11/2006, 10h15
  5. [css] Deux div ( et plus ) sur la meme ligne
    Par NeHuS dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/02/2006, 15h54

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