Convert list to string in Python


Python provides join() function which could be used to convert list to string. If the items of the list are not string then you may need to convert them to string datatype first.

Consider this example –

>>> superHero = ['Flash', 'Thor', 'Hulk']
>>> print(''.join(superHero))


Here we have declared a list of superhero. It contains 3 items – Flash, Thor, and Hulk. In the next line we are joining the list with the help of join() function. The delimiter used for joining the items is an empty string. That’s why all the 3 items will be joined without space – FlashThorHulk.

Joining with delimiter

If you want to add a delimiter between each item of the list, then use this code –

>>> superHero = ['Flash', 'Thor', 'Hulk']
>>> print('-'.join(superHero))


Here we have use - as delimiter and so the output become – Flash-Thor-Hulk.

Joining integer items

If the items inside the list are not strings then we will need to typecast them to string first. Look at this code –

>>> avengerMovies = [2012, 2015, 2019, 2020]
>>> print('|'.join(str(e) for e in avengerMovies))


Using map() function

You can also use map() function to typecast list items to string. Code –

>>> avengerMovies = [2012, 2015, 2019, 2020]
>>> print('|'.join(map(str, avengerMovies)))


Using lambda function

Python provides lambda function which can we used to do computations over each item in the list. We can use this lambda function for joining list items to convert to string. Code –

>>> from functools import reduce

>>> superHero = ['Flash', 'Thor', 'Hulk']
>>> print(str(reduce(lambda x,y: x+"-"+y, superHero)))


Using Loops

If you are not the fan of builtin functions and wants to do this with loops, then here is the code –

>>> superHero = ['Flash', 'Thor', 'Hulk']
>>> comb = ''
>>> for i in superHero:
>>>     comb += i
>>> print(comb)


Although this approach is bad in performance in comparison to join() method.

    Tweet this to help others