• Structure Pere Fils Arborescence
Réponses:
11
Visites:
0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum.
Inscrivez-vous maintenant
• Structure Pere Fils Arborescence
Posté par
Laurent
le
07/05/2008 19:42
Bonjour,
Je souhaite transformer une structure de donnée venant d'Excel (désolé pour la présentation):
N° Eq Ea Eb Ec Ed
1 Eq1
2 Ea2
3 Ea3
4 Eb1
5 Eb2
6 Ea4
7 Eb3
8 Ec1
....
et le transformer en :
Pere Fils
1 2
1 3
3 4
3 5
1 6
6 7
7 8
....
c'est mon premier gros script et je ne sais pas comment faire
Merci
|
• Re: Structure Pere Fils Arborescence
Posté par
rsaikali
le
07/05/2008 20:49
Là par contre je comprends pas tout... (et je dois pas être le seul)
Essaie de présenter mieux tes données avec la balise "code"... parce que là... |
• Re: Structure Pere Fils Arborescence
Posté par
Laurent
le
07/05/2008 21:20
désolé
code: N° Eq Ea1 Eb2 Ec3 Ed4
En espérant être plus clair Merci |
• Re: Structure Pere Fils Arborescence
Posté par
glickind
le
08/05/2008 00:22
désolé mais ca manque d'explications:
comment fais-tu pour passer du 1er au 2eme tableau qq phrases seraient les bienvenues, par exemple: "dans le 1er tableau, ligne 1 colonne Eq, il y a Eq1 ca signifie que xxx est le père de yyy j'attribue l'identifiant 1 au père et 2 au fils" |
• Re: Structure Pere Fils Arborescence
Posté par
Laurent
le
08/05/2008 08:06
Autant pour moi, je suis dedans depuis plusieurs jours (de galères). Voici des explications complémentaires.
Le 1er tableau est une feuille Excel comportant plusieurs colonnes j'ai défini les en-têtes de la façon suivante : colonne A N°, colonne B Eq, colonne C Ea, colonne D Eb... et represente une arborescence de type père/fils dans laquelle chaque ligne est numérotée (les numéros sont consécutifs mais ne commence pas forcément à 1). Ainsi : Eq1 est le père de Ea1, Ea2 et Ea3. Ea2 est le père de Eb1 et Eb2; Ec3 est le père de Ed4 et ainsi de suite. Le 2ème tableau représente la forme sous laquelle je souhaite obtenir mes informations. En fait je veux récréer mon arborescence précédente avec les numéros de la colonne N° pour les Pères et pour les Fils Merci de ton aide |
• Re: Structure Pere Fils Arborescence
Posté par
Laurent
le
08/05/2008 08:07
laurent wrote: désolé |
• Re: Structure Pere Fils Arborescence
Posté par
Laurent
le
08/05/2008 08:09
en fait je bricole et n'arrive pas à récupérer le numéro pour les niveau Ec et Ed de plus comme je ne souhaite pas limité le nombre de niveaux, je suis bloqué
Merci à tous |
• Re: Structure Pere Fils Arborescence
Posté par
rsaikali
le
08/05/2008 11:06
Le plus propre serait d'utiliser des classes, mais ce n'est plus un simple script python.
Chaque objet (classe instanciée) aurait un père et plusieurs fils, eux-même des objets. Tu te retrouves ainsi avec un objet 'racine' (sans père) Eq1 qui contient comme fils les objets Ea1, Ea2 et Ea3. L'objet Ea1 n'a pas de fils. L'objet Ea2 a deux fils Eb1 et Eb2. Et ainsi de suite... Un premier jet (à affiner) de la classe serait donc : code: class MonTruc(object):
|
|
• Re: Structure Pere Fils Arborescence
Posté par
Laurent
le
08/05/2008 14:36
Merci pour ta réponse, mais comment je récupère le numéro de ligne correspondant ?
|
• Re: Structure Pere Fils Arborescence
Posté par
glickind
le
10/05/2008 01:18
qq hypotheses:
1- le fichier Excel est stocké au format csv par exemple le fichier arbre.csv avec comme séparateur la virgule 2- la ligne d'un père est une ou plusieurs lignes avant celle du fils algorithme: lorsqu'on lit une ligne, on trouve un fils, le numéro de la colonne indique sa génération on sauvegarde son identifiant dans la branche courante de l'arbre généalogique son père se trouve évidemment à la génération précédente sur cette branche (si l'hypothèse 2 n'est pas vérifiée, il faut reconstruire tout l'arbre au lieu de ne gérer dynamiquement que la branche courante) code:
il ne te reste plus qu'à gérer le fichier destination |
• Re: Structure Pere Fils Arborescence
Posté par
glickind
le
10/05/2008 01:39
attention, je reposte car les variables entre crochets ont été interprétées comme des balises de mise en page
et donc le code n'a pas été correctement affiché (il suffit de rajouter un espace après un crochet ouvrant) code: def generation(ligne_en_liste):
|






