How can I convert a list to a string using Python?
3 Answers
Use ''.join
:
xs = ['1', '2', '3']
s = ''.join(xs)
If the list contains integers, convert the elements to string before joining them:
xs = [1, 2, 3]
s = ''.join(str(x) for x in xs)
-
58@SenthilKumaran If the resulting string requires separate items such as when passing a list of files to a process, then "" has to be changed to " " (notice the space between the quotes). Otherwise, you end up with a contiguous string ("123" instead of "1 2 3"). This is OK if that was the intention, but needs to be mentioned in the response.– BogdanMay 9, 2016 at 19:43
-
Just gonna point out that the second form works fine on almost any (single-depth) list.– The NateAug 29, 2016 at 4:03
-
6
-
The question may be a duplicate but the answer here is better than there. :) Plus this pops up as the top result on google unlike the other. (which I've noticed a lot with dupes) Sep 19, 2018 at 1:14
-
5Agree with @Bogdan. This answer creates a string in which the list elements are joined together with no whitespace or comma in between. You can use
', '.join(list1)
to join the elements of the list with comma and whitespace or' '.join(to)
to join with only white space– RSKSep 28, 2018 at 6:32
>>> xs = [1, 2, 3]
>>> " ".join(str(x) for x in xs)
'1 2 3'
-
I'd recommend to use: >>> " ".join([str(x) for x in L]) Feb 13, 2021 at 18:53
-
1
str(anything)
will convert any python object into its string representation. Similar to the output you get if you do print(anything), but as a string. Sep 18, 2022 at 17:30
xs = ['L', 'O', 'L']
lol_string = ''.join(map(str, xs))
-
2it throw
TypeError
exception,like this: In [15]: L=['1','2','3'] In [16]: print ''.join(map(str,L)) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-16-f3b8e6cb2622> in <module>() ----> 1 print ''.join(map(str,L)) TypeError: 'str' object is not callable– wgzhaoJan 6, 2013 at 11:44 -
17Since it wasn't specific in the question... If you want to preserve single string quotes on your list items (for sending a query to SQL, for instance), you can do something like this.
x = [1,2,3]
y = "'" + "','".join(map(str, x)) + "'"
– tandyMar 5, 2015 at 16:29 -
Anyone who is trying to re-use the string after converting the list to string can you this method: list1 = [1, 2, 3] str1 = ''.join('hello world' + str(e) + 'hello world' for e in list1) Output =========== hello world 1 hello world hello world 2 hello world hello world 3 hello world– PanDeMay 16, 2019 at 5:19
-
2
str(anything)
will convert any python object into its string representation. Similar to the output you get if you do print(anything), but as a string. Sep 18, 2022 at 17:30
str(anything)
will convert any python object into its string representation. Similar to the output you get if you doprint(anything)
, but as a string.