Маючи x.split(y)завжди повертає список 1 + x.count(y)елементів є дорогоцінною закономірністю - а @ gnibbler вже вказав, що робить splitі joinточні зворотний один друг (як вони , очевидно , має бути), але і точно відображає семантику всіх видів роздільників приєднаних записів ( наприклад, csvрядки файлів [[без випуску котирувань]], рядки /etc/groupв Unix тощо), це дозволяє (як згадується відповідь @ Романа) на легкі перевірки (наприклад) абсолютних проти відносних шляхів (у файлових шляхах та URL-адресах), і так далі.
Ще один спосіб поглянути на це - вам не слід безперешкодно викидати інформацію з вікна без жодної вигоди. Що б отримати, роблячи x.split(y)еквівалент x.strip(y).split(y)? Нічого, звичайно , - це не просто використовувати другу форму , коли це те, що ви маєте в виду, але якщо перша форма була довільно вважаються означає друге, ви повинні були б багато роботи , щоб зробити , коли ви дійсно хочете , щоб перший ( що далеко не рідко, як вказує попередній параграф).
Але насправді, мислення з точки зору математичної регулярності - це найпростіший і найзагальніший спосіб ви можете навчити себе розробляти прохідні API. Щоб взяти інший приклад, дуже важливо, щоб для будь-яких дійсних xі y x == x[:y] + x[y:]- що відразу вказувало, чому слід виключити одну крайність нарізки . Чим простіше твердження інваріантного ви можете сформулювати, тим більше схоже, що отримана семантика - це те, що вам потрібно в реальному житті, - частина містичного факту, що математика дуже корисна в роботі зі Всесвітом.
Спробуйте сформулювати інваріант для splitдіалекту, в якому провідні та кінцеві роздільники мають спеціальний обробку ... зустрічний приклад: рядкові методи, такі як isspaceне максимально прості - x.isspace()еквівалентні тому, x and all(c in string.whitespace for c in x)що нерозумні ведучі x and, тому ви так часто опиняєтесь кодування not x or x.isspace(), щоб повернутися до простоти, яка повинна була бути is...вбудована в строкові методи (при цьому порожня рядок "- це" все, що ви хочете - всупереч почуттю "людина-на-вулиці", можливо [[порожні набори, як нуль & c, завжди плутають більшість людей ;-)]], але повністю відповідають очевидному вишуканому математичному здоровому глузду! -).