Ответ 1
Вы ищете str.rsplit()
с лимитом:
print x.rsplit('-', 1)[0]
.rsplit()
выполняет поиск строки разделения с конца строки ввода, а второй аргумент ограничивает, сколько раз он будет разделить только один раз.
Другим вариантом является использование str.rpartition()
, который будет разбит только один раз:
print x.rpartition('-')[0]
Для разделения только один раз, str.rpartition()
является более быстрым методом; если вам нужно разделить более одного раза, вы можете использовать только str.rsplit()
.
Демо:
>>> x = 'http://test.com/lalala-134'
>>> print x.rsplit('-', 1)[0]
http://test.com/lalala
>>> 'something-with-a-lot-of-dashes'.rsplit('-', 1)[0]
'something-with-a-lot-of'
и то же самое с str.rpartition()
>>> print x.rpartition('-')[0]
http://test.com/lalala
>>> 'something-with-a-lot-of-dashes'.rpartition('-')[0]
'something-with-a-lot-of'