#python #string
#python #строка
Вопрос:
У меня есть
01:22:33:22
Я хотел бы заменить последнее двоеточие во временном коде точкой с запятой, в результате 01:22:33;22
чего .
Первоначально я использовал
colon = tcode.rfind(":")
new_tcode = tcode[:colon] ";" tcode[colon 1:]
Теперь я получаю такие ошибки, как «объект не имеет атрибута ‘rfind'».
Комментарии:
1. «ex» в «регулярном выражении» уже означает «выражение».
Ответ №1:
Использование rsplit()
и maxsplit=1
:
d = "01:22:33:22"
print(';'.join(i for i in d.rsplit(':',1)) )
Комментарии:
1. Почему
i for i in d.rsplit(':',1)
? Почему не просто';'.join(d.rsplit(':',1))
?
Ответ №2:
Это регулярное выражение работает:
>>> import re
>>> re.sub(":(?=[^:]*$)", ";", "01:22:33:22")
'01:22:33;22'
Комментарии:
1. Использование регулярного выражения сомнительно и, вероятно, медленнее, чем
rsplit
, однако.