Рубрики
Без рубрики

Python обратная строка – 5 способов и лучший

Обратная строка Python может быть сделана с помощью функции Slicing, Str.join (), обратная функция (), для петли, в то время как цикла. В строке нет обратной () функции.

Автор оригинала: Pankaj Kumar.

Строка Python не имеет встроенного обратной () функции. Однако существуют различные способы обратить вспять строку в Python.

1. Как изменить строку в Python?

Некоторые из распространенных способов обратить вспять строку:

  • Использование Нарезка создать обратную копию строки.
  • Использование для петли и добавление персонажей в обратном порядке
  • Использование Хотя петля для перевозок строковых символов в обратном порядке и добавьте их
  • Использование Строка присоединяется () Функция с обратный () итератор
  • Создание Список из строки, а затем звонить своим Обратный () функция
  • Используя рекурсию

1.1) Python обратная строка с помощью нарезки

def reverse_slicing(s):
    return s[::-1]

input_str = 'ABç∂EF'

if __name__ == "__main__":
    print('Reverse String using slicing =', reverse_slicing(input_str))

Если вы запустите над скриптом Python, вывод будет:

Reverse String using slicing = FE∂çBA

1.2) Обратная строка, используя для петли

def reverse_for_loop(s):
    s1 = ''
    for c in s:
        s1 = c + s1  # appending chars in reverse order
    return s1

input_str = 'ABç∂EF'

if __name__ == "__main__":
    print('Reverse String using for loop =', reverse_for_loop(input_str))

Выход: Обратная строка с использованием formçba

1.3) Обратитесь в строку с использованием цикла

def reverse_while_loop(s):
    s1 = ''
    length = len(s) - 1
    while length >= 0:
        s1 = s1 + s[length]
        length = length - 1
    return s1

input_str = 'ABç∂EF'

if __name__ == "__main__":
    print('Reverse String using while loop =', reverse_while_loop(input_str))

1.4) Обратитесь в строку, используя соединение () и обратное ()

def reverse_join_reversed_iter(s):
    s1 = ''.join(reversed(s))
    return s1

1.5) Обратная строка Python с помощью списка обратная ()

def reverse_list(s):
    temp_list = list(s)
    temp_list.reverse()
    return ''.join(temp_list)

1.6) Обратная строка Python с использованием рекурсии

def reverse_recursion(s):
    if len(s) == 0:
        return s
    else:
        return reverse_recursion(s[1:]) + s[0]

2. Лучший способ изменить строку в Python

Мы можем изменить строку через несколько алгоритмов. Мы уже видели шесть из них. Но какой из них вы должны выбрать обратить вспять строку.

Мы можем использовать модуль Timeit для запуска нескольких итераций этих функций и получить среднее время, необходимое для их работы.

Все вышеперечисленные функции хранятся в сценарии Python с именем string_reverse.py Отказ Я выполнил все эти функции один за один за 1,00 000 раз, используя модуль времени в часах? и получил в среднем лучших 5 прогонов.

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_slicing("ABç∂EF"*10)'
100000 loops, best of 5: 0.449 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_list("ABç∂EF"*10)'
100000 loops, best of 5: 2.46 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_join_reversed_iter("ABç∂EF"*10)'
100000 loops, best of 5: 2.49 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_for_loop("ABç∂EF"*10)'
100000 loops, best of 5: 5.5 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_while_loop("ABç∂EF"*10)'
100000 loops, best of 5: 9.4 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_recursion("ABç∂EF"*10)'
100000 loops, best of 5: 24.3 usec per loop

На таблице ниже представлена результаты и медлительность алгоритма от лучшего.

1x. Нарезка 0,449 USEC.
5.48x. Список обратного () 2.46 USEC.
5,55x. обратный () + join () 2.49 USEC.
12.25x. для петли 5.5 USEC
20,94x. во время петли 9.4 USEC.
54.12x. Рекурсия 24.3 USEC.

3. Резюме

Мы должны использовать нарезку, чтобы изменить строку в Python. Его код очень прост и маленький, и нам не нужно писать собственную логику, чтобы изменить строку. Кроме того, это самый быстрый способ изменить строку, как указано вышеупомянутые тестовые исполнения.

4. Ссылки