Skip to content

How to Print Lists Without Brackets and Commas in Python

Learn how to remove square brackets and commas when printing Python lists using str.join() for custom separators or the unpacking operator (*) for concise output.

By default, printing a list in Python displays it with square brackets and commas separating the elements.

This guide explains how to print a list's contents without these delimiters, producing cleaner, more customized output. We'll cover using str.join(), the unpacking operator (*), and how to handle lists containing non-string elements.

The str.join() method is the most flexible and Pythonic way to print a list's contents without brackets and with a customizable separator.

Joining Lists of Strings

If your list contains strings, you can directly use join():

list_of_strings = ['tutorial', 'reference', '.com']
result = ''.join(list_of_strings)   # Join with NO separator
print(result)                       # Output: tutorialreference.com

result = ' '.join(list_of_strings) # Join with space
print(result)                       # Output: tutorial reference .com

result = '\n'.join(list_of_strings) # Join with newline character.
print(result)

Output:

tutorial
reference
.com
  • ''.join(list_of_strings): Joins the elements with no separator (empty string).
  • ' '.join(list_of_strings): Joins the elements with a space separator.
  • '\n'.join(list_of_strings): Joins the elements with a newline separator.
  • You can use any string as the separator.

Joining Lists of Numbers

str.join() requires a list of strings. If your list contains numbers (integers, floats), you need to convert them to strings first. A generator expression is the most efficient way to do this:

list_of_integers = [7, 21, 44]
result = ''.join(str(item) for item in list_of_integers)
print(result)  # Output: 72144

result = ' '.join(str(item) for item in list_of_integers)
print(result)  # Output: 7 21 44

result = '\n'.join(str(item) for item in list_of_integers)
print(result)

Output:

7
21
44
  • (str(item) for item in list_of_integers): This is a generator expression. It efficiently converts each number to a string as it's needed by join(), without creating an intermediate list. This is generally more memory-efficient than a list comprehension, especially for large lists.
  • Alternatively, you can use the map function:
list_of_integers = [7, 21, 44]
result = ''.join(map(str, list_of_integers))
print(result)  # Output: 72144

Using the Unpacking Operator (*) with print()

The unpacking operator (*) provides a very concise way to print list elements without brackets and with a specified separator, all within the print() function itself:

list_of_strings = ['tutorial', 'reference', '.com']
print(*list_of_strings, sep='')   # Output: tutorialreference.com
print(*list_of_strings, sep=' ')  # Output: tutorial reference .com
print(*list_of_strings, sep='\n') # Output: Each item on new line.

list_of_integers = [7, 21, 44]
print(*list_of_integers, sep='')  # Output: 72144 (no separator)
  • *list_of_strings: The asterisk unpacks the list, passing each element as a separate argument to print().
  • sep='': The sep keyword argument to print() controls the separator between the arguments. Setting it to '' (empty string) removes any separation. The default is a space.
  • No string conversion needed: print() automatically handles converting numbers to strings, so you don't need str() or map() with this approach. This is a major advantage.
Navigation