From 8f0ee43163de9ca51e6e14f3eec94c58b90cfd6f Mon Sep 17 00:00:00 2001 From: Codebuff Contributor Date: Sat, 16 May 2026 06:06:12 +0600 Subject: [PATCH] fix(split): support multi-character separators --- strings/split.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/strings/split.py b/strings/split.py index ed194ec69c2f..60b6a88ac700 100644 --- a/strings/split.py +++ b/strings/split.py @@ -17,17 +17,31 @@ def split(string: str, separator: str = " ") -> list: >>> split(";abbb;;c;", separator=';') ['', 'abbb', '', 'c', ''] + + >>> split("a--b--c", separator="--") + ['a', 'b', 'c'] + + >>> split("apple##banana##cherry", separator="##") + ['apple', 'banana', 'cherry'] """ split_words = [] + separator_length = len(separator) + + if separator_length == 0: + return [string] last_index = 0 - for index, char in enumerate(string): - if char == separator: + index = 0 + while index < len(string): + if string[index : index + separator_length] == separator: split_words.append(string[last_index:index]) - last_index = index + 1 - if index + 1 == len(string): - split_words.append(string[last_index : index + 1]) + last_index = index + separator_length + index += separator_length + else: + index += 1 + + split_words.append(string[last_index:]) return split_words