在Python中旋转字符串

Moh*_*ani 3 python string python-2.7

我试图使字符串HELLOOHELLPython编写的。但是如果不使用循环,就无法旋转它。如何只用1-2行编写代码,以便获得所需的模式?

Cla*_*ohn 6

这是我在 Python3 中用来旋转字符串的方法:

向左旋转 n:

def leftShift(text,n):
    return text[n:] + text[:n]
Run Code Online (Sandbox Code Playgroud)

向右旋转 n:

def rightShift(text,n):
    return text[-n:] + text[:-n]
Run Code Online (Sandbox Code Playgroud)


Mik*_*ler 5

您可以切片并添加字符串:

>>> s = 'HELLO'
>>> s[-1] + s[:-1]
'OHELL'
Run Code Online (Sandbox Code Playgroud)

这给您最后一个字符:

>>> s[-1]
'O'
Run Code Online (Sandbox Code Playgroud)

这是最后的一切:

>>> s[:-1]
'HELL'
Run Code Online (Sandbox Code Playgroud)

最后,添加+


jpp*_*jpp 5

这是一种方法:

def rotate(strg, n):
    return strg[n:] + strg[:n]

rotate('HELLO', -1)  # 'OHELL'
Run Code Online (Sandbox Code Playgroud)

或者,collections.deque(“双端队列”)针对与队列相关的操作进行了优化。它具有专用的rotate()方法:

from collections import deque

items = deque('HELLO')
items.rotate(1)

''.join(items)  # 'OHELL'
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个答案,因为它也适用于空字符串。 (2认同)