1
votes

imprimer le fichier côte à côte en python

Chers experts, j'ai un programme qui appelle x et y et imprime x et y par la commande print (x, y) comme suit

  x                        y
2.63732473e-002          2.97870294e-033
6.95547303e-005          7.84889062e-036
1.83437361e-007          2.06774505e-038
4.83776370e-010          5.44613117e-041
1.27583713e-012          1.43405459e-043 
3.36458575e-015          3.77498976e-046
8.87257918e-018          9.93370767e-049
2.33965401e-020          2.61308006e-051
6.16901626e-023          6.16901626e-023 
1.62648985e-025          1.62648985e-025 
4.28780820e-028          4.28780820e-028
1.13020771e-030          1.13020771e-030
    

mais je veux imprimer x et y en seulement deux colonnes comme suit

[2.63732473e-002 6.95547303e-005 1.83437361e-007 4.83776370e-010
 1.27583713e-012 3.36458575e-015 8.87257918e-018 2.33965401e-020
 6.16901626e-023 1.62648985e-025 4.28780820e-028 1.13020771e-030]
[2.97870294e-033 7.84889062e-036 2.06774505e-038 5.44613117e-041
 1.43405459e-043 3.77498976e-046 9.93370767e-049 2.61308006e-051
 6.16901626e-023 1.62648985e-025 4.28780820e-028 1.13020771e-030]

Cependant, j'ai essayé print(str(x[:,None]),str(y[:,None])) mais il imprime toujours verticalement au lieu de côte à côte. J'espère qu'un expert va m'aider. Merci.


1 commentaires

aussi si vous voulez une sortie sophistiquée (dans la grille par exemple) jetez un œil à github.com/astanin/python-tabulate


4 Réponses :


0
votes

Vous pouvez utiliser \t pour formater une tabulation. Par exemple:

print("%d\t\t%d" % (x, y))


0 commentaires

0
votes

Tout ce dont tu as besoin c'est:

imprimer (x, y, '\ n')


0 commentaires

0
votes

Ce que vous devez faire est d'itérer simultanément sur les deux listes et d'imprimer le champ équivalent comme ceci:

print(f'x        y')
for i in range(len(x)):
   print(f'{x[i]}        {y[i]}')


0 commentaires

3
votes

Vous pouvez utiliser zip et rejoindre :

Utilisez str.format () sur un nombre avec "{: e}" comme chaîne pour formater le nombre en notation scientifique.

print("\n".join(f"{i:e}   {j:e}" for i, j in zip(x, y)))


2 commentaires

je veux enregistrer la sortie, comment puis-je enregistrer au lieu d'imprimer


vous pouvez écrire la chaîne dans un fichier avec: with open(PATH_TO_FILE, "w") as f: f.write("\n".join(f"{i:e} {j:e}" for i, j in zip(x, y)))