Перевернуть строку в Python - PullRequest
1234 голосов
/ 31 мая 2009

Нет встроенной функции reverse для объекта Python str. Каков наилучший способ реализации этого метода?

Если вы предоставляете очень краткий ответ, пожалуйста, уточните его эффективность. Например, преобразован ли объект str в другой объект и т. Д.

Ответы [ 25 ]

0 голосов
/ 29 декабря 2015

Вот один без [::-1] или reversed (для учебных целей):

def reverse(text):
    new_string = []
    n = len(text)
    while (n > 0):
        new_string.append(text[n-1])
        n -= 1
    return ''.join(new_string)
print reverse("abcd")

вы можете использовать += для объединения строк, но join() быстрее.

0 голосов
/ 16 апреля 2019

Обратная строка без магии питона.

>>> def reversest(st):
    a=len(st)-1
    for i in st:
        print(st[a],end="")
        a=a-1
0 голосов
/ 19 июля 2016

Вы можете использовать обратную функцию со списком. Но я не понимаю, почему этот метод был исключен в Python 3, был излишне.

string = [ char for char in reversed(string)]
0 голосов
/ 22 июня 2019

Существует множество способов перевернуть строку, но я также создал еще одну для развлечения. Я думаю, что такой подход не так уж и плох.

def reverse(_str):
    list_char = list(_str) # Create a hypothetical list. because string is immutable

    for i in range(len(list_char)/2): # just t(n/2) to reverse a big string
        list_char[i], list_char[-i - 1] = list_char[-i - 1], list_char[i]

    return ''.join(list_char)

print(reverse("Ehsan"))
0 голосов
/ 08 марта 2017

Вот просто:

печать "loremipsum" [- 1 :: - 1]

а некоторые по логике:

def str_reverse_fun():
    empty_list = []
    new_str = 'loremipsum'
    index = len(new_str)
    while index:
        index = index - 1
        empty_list.append(new_str[index])
    return ''.join(empty_list)
print str_reverse_fun()

выход:

muspimerol

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...