Mając x.split(y)zawsze zwróci listę 1 + x.count(y)elementów jest cennym regularność - jak @ gnibbler już zauważył to sprawia spliti joindokładne odwrotności siebie (jak oczywiście powinny być), ale również precyzyjnie odwzorowuje semantykę wszystkich rodzajów płyt separatorów mikrowczepy ( takie jak csvwiersze pliku [[bez cudzysłowów]], wiersze z /etc/groupsystemu Unix i tak dalej), umożliwia (jak wspomniano w odpowiedzi @ Romana) łatwe sprawdzenie (np.) ścieżek bezwzględnych i względnych (w ścieżkach plików i adresach URL), i tak dalej.
Innym sposobem spojrzenia na to jest to, że nie powinieneś bezmyślnie wyrzucać informacji przez okno bez żadnych korzyści. Co można by zyskać, gdybyśmy byli x.split(y)równoważni x.strip(y).split(y)? Nic, oczywiście - jest łatwy w użyciu drugą formę, gdy to, co masz na myśli, ale jeśli pierwsza forma została arbitralnie uznane oznaczać drugi, to że mają wiele do zrobienia, jeśli nie chcą pierwsza ( co nie jest rzadkie, jak wskazano w poprzednim akapicie).
Ale tak naprawdę myślenie w kategoriach matematycznej regularności jest najprostszym i najbardziej ogólnym sposobem, w jaki możesz nauczyć się projektować zadowalające API. Aby wziąć inny przykład, bardzo ważne jest, aby dla każdego ważnego xi y x == x[:y] + x[y:]- co natychmiast wskazuje, dlaczego należy wykluczyć jedną skrajność krojenia . Im prostsze niezmienne twierdzenie możesz sformułować, tym bardziej prawdopodobne jest, że wynikająca z niego semantyka jest tym, czego potrzebujesz w prawdziwym życiu - część mistycznego faktu, że matematyka jest bardzo przydatna w radzeniu sobie ze wszechświatem.
Spróbuj sformułować niezmiennik dla splitdialektu, w którym początkowe i końcowe ograniczniki są umieszczone w specjalnej wielkości liter ... kontrprzykład: metody łańcuchowe, takie jak isspacenie są maksymalnie proste - x.isspace()jest równoważne x and all(c in string.whitespace for c in x)- to głupie prowadzenie x andjest powodem, dla którego tak często znajdujesz się w kodowaniu not x or x.isspace(), aby powrócić do prostoty, która powinna zostać zaprojektowana w is...metodach łańcuchowych (gdzie pusty łańcuch "jest" wszystkim, czego chcesz - w przeciwieństwie do wyczucia konia na ulicy, może [[puste zestawy, takie jak zero & c, zawsze myliły większość ludzi ;-)]], ale w pełni zgodne z oczywistym, dobrze wyrafinowanym zdrowym rozsądkiem matematycznym ! -).