108 votes

imprimer correctement la liste en python

J'ai donc une liste:

['x', 3, 'b']

et je veux que la sortie soit:

[x, 3, b]

Comment puis-je faire cela en python?

si je fais str (['x', 3, 'b']) j'en reçois un avec des guillemets, mais je ne veux pas de guillemets.

202voto

IfLoop Points 59461
mylist = ['x', 3, 'b']
print '[%s]' % ', '.join(map(str, mylist))

15voto

Kabie Points 5197

Si vous utilisez Python3:

 print('[',end='');print(*L, sep=', ', end='');print(']')
 

10voto

Seth Johnson Points 6471

Au lieu d'utiliser map , je recommanderais d'utiliser une expression de générateur avec la capacité de join d'accepter un itérateur:

 def get_nice_string(list_or_iterator):
    return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
 

Ici, join est une fonction membre de la classe de chaînes str . Il prend un argument: une liste (ou un itérateur) de chaînes, puis renvoie une nouvelle chaîne avec tous les éléments concaténés par, dans ce cas, , .

6voto

martineau Points 21665

Vous pouvez supprimer tous les caractères d'une chaîne à l'aide de son translate() méthode avec None de la table argument suivi par une chaîne de caractères contenant le personnage(s) que vous souhaitez supprimer pour son deletechars argument.

lst = ['x', 3, 'b']

print str(lst).translate(None, "'")

# [x, 3, b]

Si vous utilisez une version de Python avant 2.6, vous aurez besoin d'utiliser l' string module translate() fonction de la place car la capacité de transmettre None le table argument n'a pas été ajoutés jusqu'à ce que la version 2.6 de Python. À l'aide, il ressemble à ceci:

import string

print string.translate(str(lst), None, "'")

À l'aide de l' string.translate() fonction peut également travailler en 2.6+, afin de l'utiliser peut-être préférable.

3voto

Tom Zych Points 5577

Voici une session interactive montrant les étapes de @TokenMacGuy du one-liner. D'abord, il utilise l' map de la fonction de convertir chaque élément de la liste pour une chaîne (en fait, il fait une nouvelle liste, ne convertissant les éléments de l'ancienne liste). Ensuite, il utilise la méthode de chaîne join de combiner ces chaînes avec ', ' d'entre eux. Le reste est juste la mise en forme de chaîne, qui est assez simple. (Edit: cette instance est simple; mise en forme de chaîne, en général, peut être un peu complexe.)

Notez que l'utilisation de join est un moyen simple et efficace pour construire une chaîne de caractères à partir de plusieurs sous-chaînes, beaucoup plus efficace que de le faire en ajoutant successivement les chaînes à la les chaînes, ce qui implique beaucoup de copie de derrière les coulisses.

>>> mylist = ['x', 3, 'b']
>>> m = map(str, mylist)
>>> m
['x', '3', 'b']
>>> j = ', '.join(m)
>>> j
'x, 3, b'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X