Замена парных символов строки в python с применением второго среза на месте - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в Python 3. Сегодня, читая о python обратной строке с использованием list , я познакомился с техникой нарезки на месте. Код выглядит следующим образом:

s = input("Enter a string:\n")
''.join([ s[x:x+2][::-1] for x in range(0, len(s), 2) ])

Я хочу знать, как применить второй срез на месте s[x:x+2][::-1] для парной замены символов? Для других языков использование [something] [something] означает интерпретацию двумерного массива. Как это переворачивает нарезанную пару?

Не могли бы вы объяснить? Заранее спасибо.

1 Ответ

0 голосов
/ 22 марта 2020

Нарезка работает следующим образом:

[start:stop:step]

Теперь давайте возьмем ваш код.

s[x:x+2][::-1] for x in range(0, len(s), 2)

s[x:x+2] 

эта часть принимает строку, начинающуюся с индекса x до х + 1 индекс. Нет реверса, а только нарезка.


[::-1]

эта часть берет нарезанную строку, полученную сверху, и снова разрезает всю строку назад [так как нет начала и конца, следовательно, вся строка ], но третий параметр сообщает, сколько шагов нужно предпринять для нарезки. Здесь это -1, это означает, что он возьмет последний элемент и обратит его назад, что приведет к перевернутой строке .

PS: Ваш код не выполняет перестановку строки, хотя, как упомянуто в комментарии @ kaya.

...