Маючи 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, завжди плутають більшість людей ;-)]], але повністю відповідають очевидному вишуканому математичному здоровому глузду! -).