2017-08-20 2 views

Répondre

3

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) 
2

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.

  1. 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]] 
    
  2. 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]] 
    
  3. 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]] 
    
+1

Belle utilisation de pformat. Si vous ne voulez pas de virgules, je dirais que c'est la voie à suivre. –