Robert Johns | 11 Feb, 2025
Fact checked by Jim Markus

Python Concatenation | Docs With Examples

Concatenation in Python refers to combining sequences such as strings, lists, and tuples. It is an essential operation when working with data structures and text processing.

Concatenating Strings

You can concatenate strings in Python using the + operator or the join() method.

# Using the + operator
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result)

Output:

Hello World

Explanation: The + operator merges the strings, with a space added for readability.

Using join() for Efficient String Concatenation

The join() method is often more efficient for concatenating multiple strings, as it reduces the overhead of repeatedly creating new string objects.

words = ["Python", "is", "awesome"]
result = " ".join(words)
print(result)

Output:

Python is awesome

Explanation: join() efficiently merges a list of strings with the given separator (" " in this case).

Concatenating Lists

Lists can be concatenated using the + operator or extend() method.

list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list1 + list2
print(result)

Output:

[1, 2, 3, 4, 5, 6]

Explanation: The + operator combines both lists into a new list.

Using extend() for Efficient List Concatenation

Unlike +, extend() modifies the original list instead of creating a new one, making it more memory-efficient.

list1.extend(list2)
print(list1)

Output:

[1, 2, 3, 4, 5, 6]

Explanation: extend() appends the elements of list2 to list1 without creating a new list.

Concatenating Tuples

Tuples can be concatenated using the + operator, but since tuples are immutable, this creates a new tuple.

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
result = tuple1 + tuple2
print(result)

Output:

(1, 2, 3, 4, 5, 6)

Explanation: Since tuples are immutable, concatenation creates a new tuple.

Concatenating with itertools.chain()

For large sequences, itertools.chain() is more memory-efficient as it avoids creating an intermediate object.

from itertools import chain
list1 = [1, 2, 3]
tuple1 = (4, 5, 6)
result = list(chain(list1, tuple1))
print(result)

Output:

[1, 2, 3, 4, 5, 6]

Explanation: chain() lazily iterates over the sequences, combining them efficiently.

Key Takeaways

  • Use + for simple concatenation of strings, lists, and tuples in your Python projects.
  • Use join() for efficient string concatenation, especially in loops.
  • Use extend() for modifying lists in place to save memory.
  • Use itertools.chain() for memory-efficient concatenation of large sequences.

Practice Exercise

Here's a simple challenge, open up your Python editor and try to write a function that concatenates a list of words into a sentence:

def concatenate_words(word_list):
    return " ".join(word_list)

print(concatenate_words(["Python", "is", "fun"]))

Wrapping Up

Concatenation is a fundamental operation in Python when working with sequences. Understanding the different methods helps optimize performance and memory usage. Choosing the right approach based on efficiency and use case ensures better code performance. Happy coding!

By Robert Johns

Technical Editor for Hackr.io | 15+ Years in Python, Java, SQL, C++, C#, JavaScript, Ruby, PHP, .NET, MATLAB, HTML & CSS, and more... 10+ Years in Networking, Cloud, APIs, Linux | 5+ Years in Data Science | 2x PhDs in Structural & Blast Engineering

View all post by the author

Subscribe to our Newsletter for Articles, News, & Jobs.

I accept the Terms and Conditions.

Disclosure: Hackr.io is supported by its audience. When you purchase through links on our site, we may earn an affiliate commission.

In this article

Learn More

Please login to leave comments