@@ -61,6 +61,14 @@ def do_split(s: str, sep: Optional[str] = None, max_split: Optional[int] = None)
61
61
return s.split(sep)
62
62
return s.split()
63
63
64
+ def do_rsplit(s: str, sep: Optional[str] = None, max_split: Optional[int] = None) -> List[str]:
65
+ if sep is not None:
66
+ if max_split is not None:
67
+ return s.rsplit(sep, max_split)
68
+ else:
69
+ return s.rsplit(sep)
70
+ return s.rsplit()
71
+
64
72
ss = "abc abcd abcde abcdef"
65
73
66
74
def test_split() -> None:
@@ -72,6 +80,15 @@ def test_split() -> None:
72
80
assert do_split(ss, " ", 1) == ["abc", "abcd abcde abcdef"]
73
81
assert do_split(ss, " ", 2) == ["abc", "abcd", "abcde abcdef"]
74
82
83
+ def test_rsplit() -> None:
84
+ assert do_rsplit(ss) == ["abc", "abcd", "abcde", "abcdef"]
85
+ assert do_rsplit(ss, " ") == ["abc", "abcd", "abcde", "abcdef"]
86
+ assert do_rsplit(ss, "-") == ["abc abcd abcde abcdef"]
87
+ assert do_rsplit(ss, " ", -1) == ["abc", "abcd", "abcde", "abcdef"]
88
+ assert do_rsplit(ss, " ", 0) == ["abc abcd abcde abcdef"]
89
+ assert do_rsplit(ss, " ", 1) == ["abc abcd abcde", "abcdef"] # different to do_split
90
+ assert do_rsplit(ss, " ", 2) == ["abc abcd", "abcde", "abcdef"] # different to do_split
91
+
75
92
def getitem(s: str, index: int) -> str:
76
93
return s[index]
77
94
0 commit comments