Last updated: Apr 8, 2024
Reading timeยท3 min
for
loopTo join a list of integers into a string:
map()
function to convert the integers in the list to stings.str.join()
method on a string separator.map
object to the join()
method.my_list = [1, 2, 3, 4, 5] my_str = ', '.join(map(str, my_list)) print(my_str) # ๐๏ธ "1, 2, 3, 4, 5"
The str.join() method takes an iterable as an argument and returns a string which is the concatenation of the strings in the iterable.
TypeError
if there are any non-string values in the iterable.The map() function takes a function and an iterable as arguments and calls the function with each item of the iterable.
my_list = [1, 2, 3, 4, 5] # ๐๏ธ ['1', '2', '3', '4', '5'] print(list(map(str, my_list)))
We simply passed each integer to the
str() class to get a map
object that
only contains strings.
The string the join()
method is called on is used as the separator between
elements.
my_list = [1, 2, 3, 4, 5] my_str = '-'.join(map(str, my_list)) print(my_str) # ๐๏ธ "1-2-3-4-5"
If you don't need a separator and just want to join the iterable's elements into
a string, call the join()
method on an empty string.
my_list = [1, 2, 3, 4, 5] my_str = ''.join(map(str, my_list)) print(my_str) # ๐๏ธ "12345"
This approach also works if your list contains both strings and integers.
my_list = [1, 'a', 2, 'b', 3, 'c', 4, 'd', 5] my_str = ', '.join(map(str, my_list)) print(my_str) # ๐๏ธ "1, a, 2, b, 3, c, 4, d, 5"
Alternatively, you can pass a
generator expression
to the join()
method.
This is a three-step process:
join()
method on a string separator.join()
method.str()
class to convert it to a
string.my_list = [1, 2, 3, 4, 5] result = ', '.join(str(item) for item in my_list) print(result) # ๐๏ธ "1, 2, 3, 4, 5"
We used a generator expression to convert each item to a string by passing it to
the str()
class.
A list comprehension can also be used in place of a generator expression.
my_list = [1, 2, 3, 4, 5] result = ', '.join([str(item) for item in my_list]) print(result) # ๐๏ธ "1, 2, 3, 4, 5"
The code sample is very similar to the previous one, however, we used a list comprehension.
my_list = [1, 2, 3, 4, 5] list_of_strings = [str(item) for item in my_list] print(list_of_strings) # ๐๏ธ ['1', '2', '3', '4', '5'] print('-'.join(list_of_strings)) # ๐๏ธ 1-2-3-4-5
On each iteration, we convert the current integer to a string and return the result.
for
loopA for loop can also be used to convert the list of integers to a list of strings before joining them.
my_list = [1, 2, 3, 4, 5] list_of_strings = [] for item in my_list: list_of_strings.append(str(item)) my_str = ', '.join(list_of_strings) print(my_str) # ๐๏ธ "1, 2, 3, 4, 5"
We declared a new variable that stores an empty list and used a for
loop to
iterate over the original list.
On each iteration, we convert the current item to a string and append the result to the new list.
The last step is to join the list of strings with a separator.
You can learn more about the related topics by checking out the following tutorials: