Есть ли какой-либо простой способ в Python, чтобы удалить строку и получить начальный индекс и конечный индекс?Удаление строки и индекса начала и конца начала
Пример: Учитывая строку ' hello world! '
, я хочу раздели строку 'hello world!'
А также индекс начальной 2
и и указательным 14
.
' hello world! '.strip()
возвращает только отрезанную строку.
Я мог бы написать функцию:
def strip(str):
'''
Take a string as input.
Return the stripped string as well as the start index and end index.
Example: ' hello world! ' --> ('hello world!', 2, 14)
The function isn't computationally efficient as it does more than one pass on the string.
'''
str_stripped = str.strip()
index_start = str.find(str_stripped)
index_end = index_start + len(str_stripped)
return str_stripped, index_start, index_end
def main():
str = ' hello world! '
str_stripped, index_start, index_end = strip(str)
print('index_start: {0}\tindex_end: {1}'.format(index_start, index_end))
if __name__ == "__main__":
main()
, но мне интересно, предоставляет ли Python или одна популярной библиотеки любого встроенного способа сделать это.
Я не думаю, что есть встроенный способ. Ваш код очень краткий, на самом деле это всего лишь три строки 'str_stripped = str.strip()', 'index_start = str.find (str_stripped)' и 'index_end = index_start + len (str_stripped)'. Все остальное излишне. –
@ LukeTaylor: Это краткий, но, как говорится в комментариях, он делает больше одного прохода по строке. Конечно, вы можете закодировать функцию 'strip()', которая возвращает желаемый результат, делая только один проход. –