Split and join a string in Python (original) (raw)

Last Updated : 01 May, 2025

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:

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:

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:

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: