在Python中旋转字符串

时间:2018-02-04 10:55:28

标签: python string python-2.7

我试图在Python中将字符串HELLO设为OHELL。但是如果不使用循环就无法旋转它。如何在1-2行中编码,以便我可以获得所需的模式?

5 个答案:

答案 0 :(得分:4)

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

>>> s = 'HELLO'
>>> s[-1] + s[:-1]
'OHELL'

这会给你最后一个字符:

>>> s[-1]
'O'

除了最后一点之外的一切:

>>> s[:-1]
'HELL'

最后,使用+添加它们。

答案 1 :(得分:4)

这是一种方式:

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

rotate('HELLO', -1)  # 'OHELL'

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

from collections import deque

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

''.join(items)  # 'OHELL'

答案 2 :(得分:3)

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

要向左旋转n:

def leftShift(text,n):
    return text[n:] + text[:n]

要向右旋转n:

def rightShift(text,n):
    return text[-n:] + text[:-n]

答案 3 :(得分:0)

我同意MikeMüller的回答:

s = 'HELLO'
s = s[-1] + s[:-1]

我想分享另一种看待s[:-1]

的方法
s[0:-1]

这意味着它从头开始,包括s [-1]以外的所有内容。 希望对您有所帮助。

答案 4 :(得分:0)

这里是查看它的简单方法...

s = 'HELLO'
for r in range(5):
    print(s[r:] + s[:r])


HELLO
ELLOH
LLOHE
LOHEL
OHELL