So I have a list:
['x', 3, 'b']
And I want the output to be:
[x, 3, b]
How can I do this in python?
If I do
str(['x', 3, 'b']), I get one with quotes, but I don’t want quotes.
mylist = ['x', 3, 'b'] print '[%s]' % ', '.join(map(str, mylist))
If you are using Python3:
print('[',end='');print(*L, sep=', ', end='');print(']')
Instead of using
map, I’d recommend using a generator expression with the capability of
join to accept an iterator:
def get_nice_string(list_or_iterator): return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
join is a member function of the string class
str. It takes one argument: a list (or iterator) of strings, then returns a new string with all of the elements concatenated by, in this case,
You can delete all unwanted characters from a string using its
translate() method with
None for the
table argument followed by a string containing the character(s) you want removed for its
lst = ['x', 3, 'b'] print str(lst).translate(None, "'") # [x, 3, b]
If you’re using a version of Python before 2.6, you’ll need to use the
translate() function instead because the ability to pass
None as the
table argument wasn’t added until Python 2.6. Using it looks like this:
import string print string.translate(str(lst), None, "'")
string.translate() function will also work in 2.6+, so using it might be preferable.
This is simple code, so if you are new you should understand it easily enough.
mylist = ["x", 3, "b"] for items in mylist: print(items)
It prints all of them without quotes, like you wanted.
Using only print:
>>> l = ['x', 3, 'b'] >>> print(*l, sep='\n') x 3 b >>> print(*l, sep=', ') x, 3, b
Here’s an interactive session showing some of the steps in @TokenMacGuy’s one-liner. First he uses the
map function to convert each item in the list to a string (actually, he’s making a new list, not converting the items in the old list). Then he’s using the string method
join to combine those strings with
', ' between them. The rest is just string formatting, which is pretty straightforward. (Edit: this instance is straightforward; string formatting in general can be somewhat complex.)
Note that using
join is a simple and efficient way to build up a string from several substrings, much more efficient than doing it by successively adding strings to strings, which involves a lot of copying behind the scenes.
>>> mylist = ['x', 3, 'b'] >>> m = map(str, mylist) >>> m ['x', '3', 'b'] >>> j = ', '.join(m) >>> j 'x, 3, b'