PYTHON

Python String split() Method: Splitting Strings in Python

The split() method in Python splits a string into a list of substrings based on a specified separator.

How to Use String split() in Python

The split() method takes a separator split the string by and a maximum number of splits as optional parameters. Without a specified separator, split() uses whitespace as a separator. Without a maximum number of splits, the split() method splits at every occurrence of the separator.

The split() method returns a list of the split elements without changing the original string.

string.split(separator, maxsplit)
  • string: The string to split into a list.
  • separator: A separator to use for splitting the string. The default value treats whitespace as a separator.
  • maxsplit: An optional parameter to specify the maximum number of splits. The default value (-1) splits the string at every occurrence of the separator.

The str.split() method is one of Python’s essential string methods, particularly useful for handling strings of various data types.

Additional string methods, such as rsplit or rpartition, can be used in conjunction with split() to handle more specific splitting needs.

Using str.split() with Multiple Parameters

The str.split() method allows advanced splitting when both separator and maxsplit parameters are combined. For example:

data = "apple,banana,grape,orange"
result = data.split(",", 2)
print(result)  # Outputs: ['apple', 'banana', 'grape,orange']

In the above example, the maxsplit parameter ensures that the string is split only two times.

When to Use String split() in Python

In Python, split() is useful for dividing a string into smaller components for easier data processing.

Parsing CSV Files

CSV files contain data separated by commas. You can use split() to parse each line.

line = "John,Doe,30"
data = line.split(",")
print(data)  # Outputs: ['John', 'Doe', '30']

The syntax is straightforward, making it easy for beginners to understand.

Tokenizing Text

Splitting a text into individual words or tokens is essential for text analysis or natural language processing. This process often involves iteration over the resulting list.

sentence = "Hello world"
words = sentence.split()
print(words)  # Outputs: ['Hello', 'world']

Extracting Data from Logs

Logs often contain structured data that can be split into useful components. For example, extracting error messages might involve dictionaries to organize the structured information.

log = "2024-05-17 10:00:00 ERROR Server down"
parts = log.split()
print(parts)  # Outputs: ['2024-05-17', '10:00:00', 'ERROR', 'Server', 'down']

Examples of String split() in Python

Splitting User Input

Interactive programs can split user input into commands or parameters.

user_input = "login user123 password"
commands = user_input.split()
print(commands)  # Outputs: ['login', 'user123', 'password']

This is particularly useful when processing a list of strings in input handling.

Handling Configuration Files

Configuration files often have key-value pairs separated by specific characters. These can be processed with split() and string methods like strip(), and then converted into dictionaries for further use.

config_line = "timeout=30"
key_value = config_line.split("=")
print(key_value)  # Outputs: ['timeout', '30']

Analyzing Sensor Data

Sensor data streams often come in a single line, separated by spaces or commas. Splitting the data makes it easier to perform iteration over each value.

sensor_data = "23.5,67.8,19.0"
values = sensor_data.split(",")
print(values)  # Outputs: ['23.5', '67.8', '19.0']

Learn More About Python Split String

Splitting with Multiple Delimiters

To split a string using multiple delimiters, use the re module with regular expressions.

import re
text = "apple;banana orange,grape"
fruits = re.split(r'[; ,]', text)
print(fruits)  # Outputs: ['apple', 'banana', 'orange', 'grape']

Splitting by Lines

The splitlines() method splits a string into a list by breaking at line boundaries.

multiline_text = "Line 1\\nLine 2\\nLine 3"
lines = multiline_text.splitlines()
print(lines)  # Outputs: ['Line 1', 'Line 2', 'Line 3']

Splitting and Keeping the Delimiter

To split a string but keep the delimiter, use capturing groups with regular expressions.

import re
text = "word1,word2.word3"
parts = re.split(r'([,.])', text)
print(parts)  # Outputs: ['word1', ',', 'word2', '.', 'word3']

Case Sensitivity in Splitting

The split() method is case-sensitive. For case-insensitive splitting, preprocess the string to a consistent case.

text = "Hello hello HELLO"
words = text.lower().split()
print(words)  # Outputs: ['hello', 'hello', 'hello']

Handling empty strings

When splitting strings, empty strings can occur if the separator appears consecutively. To filter them out, use a list comprehension:

text = "apple,,banana,,grape"
split_result = [s for s in text.split(",") if s]
print(split_result)  # Outputs: ['apple', 'banana', 'grape']

Performance Considerations

The split() method is efficient for moderate-sized strings. For extensive text processing, consider using more advanced libraries.

# Efficient splitting for large text
large_text = "A" * 10000
split_text = large_text.split("A")
print(len(split_text))  # Outputs: 10001

Using the maxsplit Parameter

The maxsplit parameter in split() limits the number of splits, allowing you to control the resulting list length.

text = "apple orange banana grape"
result = text.split(" ", maxsplit=2)
print(result)  # Outputs: ['apple', 'orange', 'banana grape']

Splitting with rsplit

The rsplit() method works similarly to split() but starts splitting from the right. It’s useful for scenarios where only the last elements need to be separated.

text = "apple,orange,banana,grape"
result = text.rsplit(",", maxsplit=2)
print(result)  # Outputs: ['apple,orange', 'banana', 'grape']

Defining Functions with split()

Using def to encapsulate split() logic within functions allows you to reuse splitting processes for multiple use cases. For example:

def parse_csv_line(line):
    return line.split(",")

line = "id,name,age"
parsed_line = parse_csv_line(line)
print(parsed_line)  # Outputs: ['id', 'name', 'age']

This approach is particularly effective for processing rows in dictionaries or other data structures.

Using rpartition for Splitting

The rpartition() method splits a string into three parts: the part before the separator, the separator itself, and the part after the separator. Unlike split(), it only makes one split and starts from the right.

text = "key=value=another_value"
result = text.rpartition("=")
print(result)  # Outputs: ('key=value', '=', 'another_value')

Unicode and International Text

The split() method handles Unicode strings, making it suitable for processing international text.

text = "こんにちは 世界"
words = text.split()
print(words)  # Outputs: ['こんにちは', '世界']
Learn Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH