Comment puis-je convertir la liste 2d comme ça?Comment afficher une liste 2D sous cette forme?
lista=[[1, 2, 3],[3, 4, 5],[8, 5, 9]] to
listb=[[1 2 3]
[3 4 5]
[8 5 9]]
Comment puis-je convertir la liste 2d comme ça?Comment afficher une liste 2D sous cette forme?
lista=[[1, 2, 3],[3, 4, 5],[8, 5, 9]] to
listb=[[1 2 3]
[3 4 5]
[8 5 9]]
Comme déjà indiqué, ce que vous avez déjà essentiellement la même représentation d'une liste en Python, une liste à la liste la conversion n'a pas beaucoup de sens. Cependant, si vous voulez une conversion de chaîne en liste - façons de sortir la liste sous la forme d'une belle chaîne, vous avez l'option pprint
, ou jolie-impression. Ceci est un module de la bibliothèque standard qui semble assez proche de ce que vous cherchez:
import pprint
l = [[1, 2, 3],[3, 4, 5],[8, 5, 9]]
pprint.pprint(l, width=12)
donne la sortie
[[1, 2, 3],
[3, 4, 5],
[8, 5, 9]]
Maintenant, j'ai dû réduire artificiellement sa largeur maximale un peu car vos listes sont si courtes que pprint
, par défaut, ne les considère pas comme valables.
En outre, si vous voulez que la représentation de chaîne dans votre programme, vous pouvez utiliser pprint.pformat
dans à peu près de la même façon, sauf qu'il renvoie une chaîne:
import pprint
l = [[1, 2, 3],[3, 4, 5],[8, 5, 9]]
s = pprint.pformat(l, width=12)
Je suppose que vous cherchez est le __repr__
d'une liste - la façon dont il est affiché. Sémantiquement, les deux sont une seule et même chose. Toutefois, si vous voulez afficher vos listes comme ça, voici comment vous pourriez le faire.
La façon simple avec numpy
:
import numpy as np
lst = [[1, 2, 3],[3, 4, 5],[8, 5, 9]]
print(np.array(lst))
[[1 2 3]
[3 4 5]
[8 5 9]]
La façon grotesque, en utilisant python de vanille.
print('[' + '\n '.join(str(x).replace(',', '') for x in lst) + ']')
[[1 2 3]
[3 4 5]
[8 5 9]]
L'autre réponse mentionne pprint.pprint
que je considère comme une alternative plus simple à 2, mais une flexibilité limitée. Vous pouvez utiliser à la place pprint.pformat
pour enjoliver votre liste et vous débarrasser des virgules:
import pprint
print(pprint.pformat(lista, width=12).replace(',', ''))
[[1 2 3]
[3 4 5]
[8 5 9]]
Belle utilisation de pformat. Si vous ne voulez pas de virgules, je dirais que c'est la voie à suivre. –