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