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 split
i join
dokł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 csv
wiersze pliku [[bez cudzysłowów]], wiersze z /etc/group
systemu 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 x
i 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 split
dialektu, w którym początkowe i końcowe ograniczniki są umieszczone w specjalnej wielkości liter ... kontrprzykład: metody łańcuchowe, takie jak isspace
nie 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 and
jest 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 ! -).