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.
4 Réponses :
Vous pouvez utiliser \t
pour formater une tabulation. Par exemple:
print("%d\t\t%d" % (x, y))
Tout ce dont tu as besoin c'est:
imprimer (x, y, '\ n')
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]}')
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)))
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)))
aussi si vous voulez une sortie sophistiquée (dans la grille par exemple) jetez un œil à github.com/astanin/python-tabulate