To print a list without its square brackets, format its elements as a string rather than printing Python’s list representation. For a list of strings, use ', '.join(items). For numbers or mixed values, convert each value with str before joining, or unpack the list into print for immediate output.
Why Python shows brackets
Square brackets are part of how Python represents a list; they are not extra characters surrounding the stored elements. Formatting the output does not remove items or change the list itself. Python’s data structures documentation describes lists and their standard representation.
Print a list of strings without brackets
Use str.join with the separator you want. The separator goes before .join:
items = ['red', 'green', 'blue']
result = ', '.join(items)
print(result)
# red, green, blue
This produces a reusable string, with no list brackets or quotes. Change the separator to control the format: ' '.join(items) inserts spaces, while ''.join(items) puts the strings together with no separator.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
The Python 3.14.8 built-in types documentation specifies that join concatenates strings from an iterable and raises TypeError if an element is not a string.
Handle numbers and mixed values
Convert each element to a string before joining when the list contains numbers or a mix of types:
Rank #2
values = [10, 20, 30]
print(', '.join(map(str, values)))
# 10, 20, 30
mixed = [10, 'ten', True]
print(', '.join(map(str, mixed)))
# 10, ten, True
map(str, values) applies str to each element, so join receives strings. The result is text, not a list of converted values.
Print items directly without building a string
If you only need to write the values to standard output, unpack the list into print and set its separator:
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutevalues = [10, 'ten', True]
print(*values, sep=', ')
# 10, ten, True
Use sep=', ' for comma-separated output. Without that argument, print(*values) separates items with spaces. Unpacking is convenient for immediate printing; use join when you need a string to save, return, or use elsewhere. See the Python tutorial’s discussion of printing and strings.
Why slicing or replacing brackets is usually a bad fit
Expressions such as str(items)[1:-1] or str(items).replace('[', '').replace(']', '') edit the text of the list’s representation instead of formatting its elements. Slicing can leave quotes around string values; replacement can also remove bracket characters that belong inside an element. Use join or unpacked print to choose the output format deliberately.
If brackets are inside the list’s strings
If you want to remove square-bracket characters from the stored strings themselves, transform those strings explicitly. This is different from omitting the brackets in the display of a list:
items = ['[red]', '[green]']
cleaned = [item.replace('[', '').replace(']', '') for item in items]
print(cleaned)
# ['red', 'green']
The new list contains changed strings; the original items list remains unchanged.
Best Value
What if the list contains nested lists?
Formatting the outer list does not flatten nested data. First decide whether you want to preserve the nested structure or flatten the elements into one sequence. Then format that chosen result. Removing the outer representation characters alone will not turn nested lists into a flat list.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




