Thanks to visit codestin.com
Credit goes to www.geeksforgeeks.org

Open In App

Split and join a string in Python

Last Updated : 01 May, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The goal here is to split a string into smaller parts based on a delimiter and then join those parts back together with a different delimiter. For example, given the string “Hello, how are you?”, you might want to split it by spaces to get a list of individual words and then join them back together with a different delimiter like a hyphen (-) to create a formatted string. The result would be “Hello,-how-are-you?”.

Using split() and join()

split() function divides the string into a list of words and join() reassembles them with a specified separator. It is highly efficient and commonly used in Python for basic string manipulations.

Python
a = "Hello, how are you?"
b = a.split()  # Split by space
c = "-".join(b)  # Join with hyphen

print(b)
print(c)

Output
['Hello,', 'how', 'are', 'you?']
Hello,-how-are-you?

Explanation:

  • split() divides the string into a list of words, split by spaces by default.
  • “-“.join(b) reassembles the list into a string with hyphens between the words.

Using re.split() and ‘-‘.join()

In cases needing advanced splitting e.g., handling multiple spaces or different delimiters, re.split() from the re module offers more flexibility. However, it’s less efficient than split() for simple cases due to the overhead of regular expression processing.

Python
import re
a = "Hello, how are you?"

b = re.split(r'\s+', a) # Split by spaces
c = "-".join(b) # Join with a hyphen

print(b)
print(c)

Output
['Hello,', 'how', 'are', 'you?']
Hello,-how-are-you?

Explanation:

  • re.split(r’\s+’, a) split the string by one or more spaces, providing more flexibility for advanced splitting.
  • “-“.join(b) joins the list of words with hyphens.

Using str.partition() and str.replace()

This method splits the string manually using partition(), iterating over it to separate head and tail parts. After splitting, replace() or manual manipulation joins the parts. While functional, it’s less efficient due to multiple iterations and extra logic.

Python
a = "Hello, how are you?"
words, rem = [], a

# Split by space manually
while rem:
    head, _, rem = rem.partition(" ")
    if head: words.append(head)

c = "-".join(words) # Join with hyphen
print(words)
print(c)

Output
['Hello,', 'how', 'are', 'you?']
Hello,-how-are-you?

Explanation:

  • partition(” “) splits the string into three parts, before the first space (head), the space itself (sep) and after the space (tail). This process repeats until the string is fully split.
  • Loop ensures all words are extracted and added to the list words.

Using str.split() with list comprehension

This method splits the string with split() and uses a list comprehension to process or filter the list. While more compact and readable, it adds an extra step, reducing efficiency compared to using split() and join() directly.

Python
a = "Hello, how are you?"

# Split by space
b = [word for word in a.split()]

# Join with a hyphen
c = "-".join(b)

print(b)
print(c)

Output
['Hello,', 'how', 'are', 'you?']
Hello,-how-are-you?

Explanation:

  • [word for word in a.split()] splits a by spaces into a list of words .
  • “-“.join(b) joins the words in b with hyphens.


Similar Reads