перевернуть строку в Python - PullRequest
       170

перевернуть строку в Python

34 голосов
/ 20 апреля 2009

Я искал способ напечатать строку в обратном направлении, и после быстрого поиска в Google я нашел этот метод:

Предположим, что 'a' является строковой переменной. Это вернет строку 'a' в обратном направлении:

a[::-1]

Может кто-нибудь объяснить, как это работает?

Ответы [ 16 ]

0 голосов
/ 01 июня 2019

первые две границы по умолчанию равны 0, а длина последовательности, как и прежде, и шаг -1 указывают, что срез должен идти справа налево, а не слева направо. Следовательно, эффект состоит в том, чтобы изменить последовательность действий.

name="ravi"
print(name[::-1]) #ivar
0 голосов
/ 05 марта 2019

Вы можете использовать функцию reversed (). Например

x = "abcd"
for i in reversed(x):
        print(i, end="")
print("\n")
L = [1,2,3]
for i in reversed(L):
        print(i, end="")

отпечатки dcba и 321

0 голосов
/ 18 ноября 2018

Использование расширенного синтаксиса слайса

word = input ("Type a word which you want to reverse: ")
def reverse(word):
  word = word[::-1]
  return word
print (reverse(word))
0 голосов
/ 29 сентября 2017

Без использования реверса или [:: - 1], вот простая версия, основанная на рекурсии, которую я считаю наиболее читаемой:

def reverse(s):

  if len(s)==2:
    return s[-1] + s[0]

  if len(s)==1:
    return s[0]

  return s[-1] + reverse(s[1:len(s)-1]) + s[0]
0 голосов
/ 26 августа 2014

мы можем использовать append и pop, чтобы сделать это

def rev(s):
    i = list(s)
    o = list()
    while len(i) > 0:
        o.append(t.pop())

    return ''.join(o)
0 голосов
/ 22 марта 2012

Рассмотрите список ниже

l=[12,23,345,456,67,7,945,467]

Другой трюк для изменения списка может быть:

l[len(l):-len(l)-1:-1] [467, 945, 7, 67, 456, 345, 23, 12]

l[:-len(l)-1:-1] [467, 945, 7, 67, 456, 345, 23, 12]

l[len(l)::-1] [467, 945, 7, 67, 456, 345, 23, 12]
...