Salut,
quelques remarques à propos de
1 2
| for keyval in data.items() :
print keyval |
- tu peux récupérer la clé et la valeur dans 2 variables différentes plutôt que dans un tuple simplement en mettant tes 2 variables séparées par une virgule à la place de "keyval"
- tu peux utiliser iteritems() au lieu de items(). c'est du détail et tu ne verras pas la différence, mais c'est considéré comme une bonne pratique de l'utiliser partout ou il n'est pas indispensable d'utiliser items().
ce qui donne:
1 2
| for key, val in data.iteritems() :
print key, val |
ce code va t'afficher le code de la molécule suivi de la liste des élement qui la compose (en fait je sais pas vraiment si ce sont les éléments qui la compose, si tu pouvais nous expliquer ça un peu plus en détail ça nous aiderait à communiquer) chacun sous forme d'une nouvelle liste.
si j'ai bien compris, ce que tu veux c'est:
- faire de chaque élement une chaine de caractère contenant toute les infos se rapportant à cet élément. donc, transformer un un élément sous forme de liste en élément sous forme de chaine de caractères.
- afficher chacune de ces chaines à la suite l'une de l'autre et après le code de la molécule qu'elles composent.
dans le bout de code ci-dessus, key est donc le code de la molécule et val est la liste de ses éléments.
tu peux donc boucler sur la liste de ces élements pour accéder a chaque élément individuellement:
chacun de ces élements est lui même une liste des infos qu'on a sur cet élément. tu as déjà fait une chaine de caractères à partir d'une liste avec la méthode join(), donc tu ne devrais avoir aucun mal à fabriquer une chaine à partir de elem.
maintenant, comment afficher tout ça sur une seule ligne? je vois 2 solutions...
1 -la solution qui va bien pour faire des tests rapides:
pour le moment tu as toujours utilisé
print de la même manière en lui donnant seulement une chaine à afficher. cela affiche la chaine et retourne à la ligne.
maintenant si tu ne veut pas retourner à la ligne après l'affichage de ta chaine, tu peux mettre une virgule après ta chaine de caractères:
1 2 3 4 5 6 7 8
| print "une", # virgule en fin de print -> pas de retour a la ligne
print "chaine", # virgule en fin de print -> pas de retour a la ligne
print "quelconque" # pas de virgule -> retour a la ligne apres ce print
print "retour a la ligne" # ce print s'affiche sur la ligne du dessous
# resultat:
# une chaine quelconque
# retour a la ligne |
2 - la solution un peu plus propre:
tu construis d'abord la chaine de caractère à afficher avec toutes ce qui doit être sur la ligne et tu affiches ta chaine à la fin:
1 2 3 4 5 6 7 8 9 10
| une_liste = ["une", "liste", "pleine", "de", "chaines"]
chaine = "titre:"
for element in une_liste:
chaine += " {0}".format(element)
print chaine
# resultat:
# titre: une liste pleine de chaines |
tu devrais avoir de quoi avancer un peu là.
Partager