Python. Отрезать строке голову и хвост
В Python 3.9 строке добавили методы, которые удаляют префикс и суффикс:
>>> "Френк и семечки".removeprefix("Френк и ")
'семечки'
>>> "Френк и семечки".removesuffix(" и семечки")
'Френк'
Во время обсуждения PEP разгорелся нешуточный спор. Сначала автор предложил названия cutprefix()
и cutsuffix()
, но сообществу не понравился глагол cut
. Альтернативой предложили strip
, trim
и remove
, долго и мучительно обсуждали, наконец остановились на remove
.
Конечно, именование переменных и методов — первая неразрешимая проблема программирования (вторая, как вы знаете — устаревание кеша). Но решение странное, на мой взгляд.
До сих пор в языке remove
использовался в смысле «удалить элемент коллекции»:
deque.remove()
array.remove()
os.remove()
А в строках для обрезки части — strip
:
str.strip()
str.lstrip()
str.rstrip()
Да, само по себе strip
— не слишком удачное название (в других языках чаще используют trim
). Но оно давно прижилось, так что логично его и использовать дальше.
Так или иначе, строка обзавелась двумя новыми методами. Всего их теперь 47 (!), не считая дандеров.
★ Подписывайтесь на новые заметки.