Python String partition() Method – Split into Three Parts

Python String partition() Method

The partition() method in Python is used to split a string into three parts using a specified separator. It always returns a tuple of 3 elements.

Syntax

string.partition(separator)

Parameters:

  • separator – The string to search for (must not be empty).

Returns:

  • A tuple of 3 parts: (before_separator, separator, after_separator)
  • If the separator is not found, the first item will be the entire string, and the second and third will be empty strings.

Example: Basic Usage

text = "python-is-awesome"
result = text.partition("-")
print(result)
('python', '-', 'is-awesome')

Why? Because:

  • 'python' comes before the first '-'
  • '-' is the separator
  • 'is-awesome' comes after

Example: Separator Not Found

text = "learnpython"
result = text.partition(" ")
print(result)
('learnpython', '', '')

The separator (a space) was not found, so the whole string is returned as the first element.

Real-world Use Case

You can use partition() when you want to break a string into 2 parts at the first occurrence of a keyword or symbol. For example:

email = "user@example.com"
username, sep, domain = email.partition("@")
print("Username:", username)
print("Domain:", domain)
Username: user
Domain: example.com

Comparison with split()

  • partition() splits at the first occurrence only.
  • split() can split multiple times and returns a list.

Common Mistakes

  • Using an empty string as the separator → causes a ValueError
  • Expecting more than 3 values in the returned tuple

Interview Tip

If you're asked to extract a prefix or postfix around a delimiter in a string, partition() is the fastest and cleanest method to use.

Summary

  • partition() splits a string into 3 parts using a separator.
  • Returns a tuple: (before, separator, after)
  • Helpful for quick parsing and string analysis.

Practice Problem

Write a Python program that reads a string like "title:Introduction to Python" and splits it into label and value using partition().

text = "title:Introduction to Python"
label, sep, value = text.partition(":")
print("Label:", label)
print("Value:", value)
Label: title
Value: Introduction to Python
Mallikarjuna Mallisetty, author
About the author

Mallikarjuna Mallisetty

General programming

Mallikarjuna shares practical programming tutorials and foundational concepts designed to help developers learn by building and experimenting.

View LinkedIn profile ↗