Skip to main content

How to Join a List of Integers into a String in Python

This guide explains how to convert a list of integers into a single string in Python. We will explore the most common methods for joining a list of integers, covering the use of map(), generator expressions, list comprehensions, and for loops, and highlighting the importance of type conversion.

The most concise and Pythonic way to join a list of integers into a string is to use the map() function and str.join():

my_list = [1, 2, 3, 4, 5]
my_str = ', '.join(map(str, my_list))
print(my_str) # Output: "1, 2, 3, 4, 5"
  • map(str, my_list): This applies the str() function to each element in my_list, effectively converting each integer to its string representation. This returns a map object (an iterator).
  • ', '.join(...): This takes the iterator produced by map() and joins the resulting strings together, using ', ' (a comma and a space) as the separator. You can change this separator to any string you want (e.g., '' for no separator, '-' for hyphens, '\n' for newlines).
  • If you have other types of items in your list this will also work, as it converts everything to strings first.

Joining with a Generator Expression

A generator expression provides a very similar approach, and is often preferred for its readability:

my_list = [1, 2, 3, 4, 5]
result = ', '.join(str(item) for item in my_list)
print(result) # Output: "1, 2, 3, 4, 5"
  • The generator expression (str(item) for item in my_list) efficiently converts each integer to a string as it's needed by join(). This avoids creating an intermediate list in memory, which can be beneficial for very large lists.

Joining with a List Comprehension

List comprehensions can also be used. This is similar to using the generator expression, but creates an intermediate list.

my_list = [1, 2, 3, 4, 5]
result = ', '.join([str(item) for item in my_list])
print(result) # Output: "1, 2, 3, 4, 5"
  • The list comprehension [str(item) for item in my_list] creates a new list containing the string representations of the numbers.

Joining with a for Loop

While less concise, you can achieve the same result using a for loop and string concatenation:

my_list = [1, 2, 3, 4, 5]

list_of_strings = []
for item in my_list:
list_of_strings.append(str(item)) # Convert to string and append

my_str = ', '.join(list_of_strings)
print(my_str) # Output: "1, 2, 3, 4, 5"
  • This approach explicitly creates an intermediate list, list_of_strings, which is less memory-efficient than using map() or a generator expression.