CARVIEW |
- Log in to:
- Community
- DigitalOcean
- Sign up for:
- Community
- DigitalOcean
By Pankaj Kumar and Anish Singh Walia

Introduction
In Python, joining a list of strings involves concatenating the elements of the list into a single string, using a specified delimiter to separate each element. This operation is particularly useful when you need to convert a list of strings into a single string, such as when you want to save a list of alphabets as a comma-separated string in a file.
In this tutorial, you will learn the various techniques for concatenating lists and strings in Python. It covers the use of the join()
method to merge a list of strings into a single string, the concatenation of two lists using the +
operator or itertools.chain()
, and the combination of a list with a set. Additionally, you will also learn using the strip()
method for removing leading and trailing whitespace from a string.
Python Join List
We can use the python string join()
function to join a list of strings. This function takes iterable
as argument and List is an iterable, so we can use it with List. Also, the list should contain strings, if you will try to join a list of ints
then you will get an error message as TypeError: sequence item 0: expected str instance, int found
. Let’s look at a short example for joining list in python to create a string.
To resolve the error when trying to join a list of ints
, you can convert each element to a string before joining. Here’s an example:
int_list = [1, 2, 3, 4, 5]
# Convert each element to string before joining
int_list_str = [str(element) for element in int_list]
joined_str = ",".join(int_list_str)
print("Joined string:", joined_str)
# Output: Joined string: 1,2,3,4,5
vowels = ["a", "e", "i", "o", "u"]
vowelsCSV = ",".join(vowels)
print("Vowels are = ", vowelsCSV)
When we run the above program, it will produce the following output.
Vowels are = a,e,i,o,u
Python join two strings
We can use join() function to join two strings too.
message = "Hello ".join("World")
print(message) #prints 'Hello World'
Why join()
function is in String and not in List?
One question arises with many python developers is why the join() function is part of String and not list. Wouldn’t below syntax be more easy to remember and use?
vowelsCSV = vowels.join(",")
There is a popular StackOverflow question around this, here I am listing the most important points from the discussions that makes total sense to me.
The main reason is that join() function can be used with any iterable and result is always a String, so it makes sense to have this function in String API rather than having it in all the iterable classes.
Joining list of multiple data-types
Let’s look at a program where we will try to join list items having multiple data types.
names = ['Java', 'Python', 1]
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
Let’s see the output for this program: This was just a demonstration that a list which contains multiple data-types cannot be combined into a single String with
join()
function. List must contain only the String values.
Split String using the join()
function
We can use join()
function to split a string with specified delimiter too.
names = 'Python'
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
This shows that when String is passed as an argument to join() function, it splits it by character and with the specified delimiter.
Using split() function
Apart from splitting with the join()
function, split()
function can be used to split a String as well which works almost the same way as the join()
function. Let’s look at a code snippet:
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter)
print('List: {0}'.format(split))
Let’s see the output for this program: We used the same delimiter to split the String again to back to the original list.
Splitting only n
times
The split()
function we demonstrated in the last example also takes an optional second argument which signifies the number of times the splot operation should be performed. Here is a sample program to demonstrate its usage:
names = ['Java', 'Python', 'Go']
delimiter = ','
single_str = delimiter.join(names)
print('String: {0}'.format(single_str))
split = single_str.split(delimiter, 1)
print('List: {0}'.format(split))
Let’s see the output for this program: This time, split operation was performed only one time as we provided in the
split()
function parameter. That’s all for joining a list to create a string in python and using split() function to get the original list again.
Performance Comparison between join()
, +
Operator, and itertools.chain()
join()
, +
Operator, and itertools.chain()
When combining lists or strings in Python, it’s essential to understand the performance implications of different methods. Here’s a comparison of join()
, +
Operator, and itertools.chain()
:
For example:
# Using join()
strings = ['Hello', 'World', 'Python']
joined_string = ','.join(strings)
print(joined_string) # Output: Hello,World,Python
# Using + Operator
strings = ['Hello', 'World', 'Python']
concatenated_string = 'Hello' + ',' + 'World' + ',' + 'Python'
print(concatenated_string) # Output: Hello,World,Python
# Using itertools.chain()
from itertools import chain
strings = ['Hello', 'World', 'Python']
chained_strings = list(chain(*strings))
print(','.join(chained_strings)) # Output: Hello,World,Python
Comparison Table
Method | Description | Performance | Suitable For |
---|---|---|---|
join() |
Concatenates a list of strings into a single string with a specified delimiter. | Efficient for string-specific operations. | String concatenation with a delimiter. |
+ Operator |
Concatenates lists or strings by creating a new list or string at each step. | Can lead to performance issues with large datasets. | Simple concatenation, but not recommended for large datasets. |
itertools.chain() |
Combines multiple iterables into a single iterable without creating intermediate lists. | Optimized for handling large datasets efficiently. | Combining multiple iterables into a single iterable. |
Remember to choose the method that best fits your use case based on performance and functionality requirements.
Some Practical Use Cases
- Using
join()
for Strings: When you have a list of strings and need a single concatenated string with delimiters,join()
is the preferred method. This is particularly useful when you need to format a string with multiple parts, such as creating a sentence from a list of words or combining a list of names with commas.
words = ['Python', 'is', 'awesome']
sentence = ' '.join(words)
print(sentence) # Output: Python is awesome
- Combining Lists with
itertools.chain()
: For merging multiple lists, especially large ones,itertools.chain()
offers a memory-efficient solution. This is particularly useful when working with large datasets or when you need to process elements from multiple lists in a single iteration. By usingitertools.chain()
, you can avoid creating intermediate lists, which can significantly reduce memory usage and improve performance.
import itertools
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list(itertools.chain(list1, list2))
print(combined) # Output: [1, 2, 3, 4, 5, 6]
You can read more on combining lists in Python using this tutorial on Concatenate Lists in Python.
Combining Lists with Dictionaries or Sets
When working with lists, dictionaries, and sets in Python, it’s essential to understand how to combine them effectively. Lists are ordered sequences of elements, while dictionaries are unordered collections of key-value pairs, and sets are unordered collections of unique elements. Combining these data structures requires careful consideration of their characteristics and the desired outcome.
- Lists and Dictionaries: To combine a list with a dictionary, you might want to extract the dictionary’s keys or values and then concatenate them with the list. This can be useful when you need to merge data from different sources or formats. Here’s an example of how you can do this:
my_list = [1, 2, 3]
my_dict = {'a': 4, 'b': 5}
# Combining list with dictionary keys
combined_keys = my_list + list(my_dict.keys())
print(combined_keys) # Output: [1, 2, 3, 'a', 'b']
# Combining list with dictionary values
combined_values = my_list + list(my_dict.values())
print(combined_values) # Output: [1, 2, 3, 4, 5]
In the above code, we first define a list my_list
and a dictionary my_dict
. Then, we use the list()
function to convert the dictionary’s keys or values into a list, which can be concatenated with my_list
using the +
operator. The resulting combined list is then printed to the console.
- Lists and Sets: Since sets are unordered collections of unique elements, you can convert a set to a list before combining it with another list. This is particularly useful when you need to merge data from different sources or formats, ensuring that all elements are unique. Here’s an example of how you can combine a list with a set:
my_list = [1, 2, 3]
my_set = {4, 5, 6}
# Combining list with set
combined = my_list + list(my_set)
print(combined) # Output: [1, 2, 3, 4, 5, 6]
In this example, we define a list my_list
and a set my_set
. We then convert the set to a list using the list()
function and concatenate it with my_list
using the +
operator. The resulting combined list is then printed to the console. Note that the order of elements in the set is not preserved due to its unordered nature.
FAQ
1. How to join a list in Python?
To join a list of strings into a single string with a delimiter, use the join()
method.
words = ['Hello', 'World']
sentence = ' '.join(words)
print(sentence) # Output: Hello World
2. How can I join two lists in Python?
To concatenate two lists, use the +
operator or itertools.chain()
for better performance with large lists.
list1 = [1, 2]
list2 = [3, 4]
combined = list1 + list2
print(combined) # Output: [1, 2, 3, 4]
3. What does join()
do in Python?
The join()
method concatenates a list of strings into a single string, separated by the specified delimiter.
4. How to combine two lists together?
You can combine two lists using the +
operator or itertools.chain()
for an efficient solution.
5. What is the join()
method?
The join()
method is a string method that concatenates an iterable of strings into a single string with a specified separator.
6. What does strip()
do in Python?
The strip()
method removes leading and trailing whitespace from a string.
Conclusion
In this tutorial, you learned the various ways to concatenate lists and strings in Python. You learned how to join a list of strings into a single string using the join()
method, how to concatenate two lists using the +
operator or itertools.chain()
, and how to combine a list with a set. Additionally, we touched upon the strip()
method for removing leading and trailing whitespace from a string.
To further enhance your knowledge of Python programming, we recommend checking out the following tutorials:
- How to Concatenate Lists in Python
- Python String Concatenation: Techniques, Examples, and Tips
- How to Add Elements to a List in Python
- How to Remove Spaces from a String in Python
These tutorials will provide you with a deeper understanding of Python and its applications in data manipulation and string operations.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
About the author(s)
Java and Python Developer for 20+ years, Open Source Enthusiast, Founder of https://www.askpython.com/, https://www.linuxfordevices.com/, and JournalDev.com (acquired by DigitalOcean). Passionate about writing technical articles and sharing knowledge with others. Love Java, Python, Unix and related technologies. Follow my X @PankajWebDev
Helping Businesses stand out with AI, SEO, & Technical content that drives Impact & Growth | Senior Technical Writer @ DigitalOcean | 2x Medium Top Writers | 2 Million+ monthly views & 34K Subscribers | Ex Cloud Engineer @ AMEX | Ex SRE(DevOps) @ NUTANIX
Still looking for an answer?
message = "Hello ".join(“World”) print(message) #prints ‘Hello World’ This actually prints: ‘WHello oHello rHello lHello d’
- Miguel
- Table of contents
- Python Join List
- Performance Comparison between `join()`, `+` Operator, and `itertools.chain()`
- Some Practical Use Cases
- Combining Lists with Dictionaries or Sets
- FAQ
- Conclusion
Deploy on DigitalOcean
Click below to sign up for DigitalOcean's virtual machines, Databases, and AIML products.
Become a contributor for community
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
DigitalOcean Documentation
Full documentation for every DigitalOcean product.
Resources for startups and SMBs
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Get our newsletter
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
The developer cloud
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Get started for free
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.