Avere x.split(y)sempre restituire un elenco di 1 + x.count(y)elementi è una preziosa regolarità - come @ gnibbler sta già sottolineato rende splite joininverse esatte della vicenda (come, ovviamente, dovrebbero essere), ma anche le mappe con precisione la semantica di tutti i tipi di record delimitatore incollati ( come csvle righe di file [[al netto dei problemi di citazione]], le righe di /etc/groupUnix e così via), consente (come menzionato nella risposta di @ Roman) facili controlli per (ad esempio) percorsi assoluti e relativi (nei percorsi dei file e negli URL), e così via.
Un altro modo per vederlo è che non dovresti lanciare volutamente informazioni fuori dalla finestra per nessun guadagno. Cosa si guadagnerebbe nel renderlo x.split(y)equivalente a x.strip(y).split(y)? Nulla, ovviamente - è facile da usare la seconda forma in cui questo è quello che vuoi dire, ma se il primo modulo è stato arbitrariamente considerato significare la seconda, che avresti avuto molto lavoro da fare quando si fa desidera che il primo ( che è tutt'altro che raro, come sottolinea il paragrafo precedente).
Ma in realtà, pensare in termini di regolarità matematica è il modo più semplice e generale in cui puoi insegnare a te stesso a progettare API passabili. Per fare un esempio diverso, è molto importante che per ogni valido xe y x == x[:y] + x[y:]- che indica immediatamente perché un estremo di un'affettatura dovrebbe essere escluso. Più semplice è l'asserzione invariante che puoi formulare, più è probabile che la semantica risultante sia ciò di cui hai bisogno negli usi della vita reale - parte del fatto mistico che la matematica è molto utile nel trattare con l'universo.
Prova a formulare l'invariante per un splitdialetto in cui i delimitatori iniziali e finali sono in maiuscolo speciale ... controesempio: metodi di stringa come isspacenon sono massimamente semplici - x.isspace()è equivalente a x and all(c in string.whitespace for c in x)- quello stupido inizio x andè il motivo per cui ti trovi così spesso a scrivere codice not x or x.isspace(), per tornare alla semplicità che avrebbe dovuto essere progettata nei is...metodi delle stringhe (per cui una stringa vuota "è" qualsiasi cosa tu voglia - contrariamente al senso del cavallo dell'uomo-in-strada, forse [[insiemi vuoti, come zero & c, hanno sempre confuso la maggior parte delle persone ;-)]], ma in piena conformità al buon senso matematico evidente e ben raffinato ! -).