如何在python中将字符串向右移?

时间:2015-04-30 21:15:19

标签: python

我尝试将字符串向右移动

  • 最后一个值应该是第一个,其余的值应该是
  • s= "I Me You"应该返回"You I Me"

我尝试了以下代码,但它没有用,请帮帮我..

sr= "I Me You"
def shift_right(sr):
    L=sr.split()
    new_list=L[-1]

    new_list= new_list.append(1,L[:0])
    return (new_list)

print(shift_right(sr)
print (shift_reverse(sr))

7 个答案:

答案 0 :(得分:6)

首先我们拆分字符串:

>>> s = "I Me You"
>>> l = s.split()
>>> l
['I', 'Me', 'You']

然后我们添加l[-1:],它是从最后一个元素到结尾的列表,带有l[:-1],这是从开始到(但不包含)最后一个元素的列表:

>>> l[-1:] + l[:-1]
['You', 'I', 'Me']

最后我们加入:

>>> ' '.join(l[-1:] + l[:-1])
'You I Me'

答案 1 :(得分:2)

您可以使用索引和切片创建一个新列表,然后按空格加入:

print(' '.join([s.split()[-1]] + s.split()[:-1])) # You I Me

答案 2 :(得分:2)

如果您将字符串设为collections.deque,则可以使用rotate()方法:

page.onNavigationRequested

答案 3 :(得分:2)

如果所有分隔符都相同(split没有参数接受所有空格字符),则可以在不使用列表的情况下执行此操作。使用rindexrpartition等字符串方法:

 >>> part = s.rpartition(' ')
 >>> part[-1] + part[1] + part[0]
 'You I Me'

答案 4 :(得分:1)

此代码适用于您

def shift_str(s):
    arr = s.split()
    first = arr.pop(0)
    arr.append(first)
    return " ".join(arr)

E.g:

shift_str("xxx ccc lklklk")>> 'ccc lklklk xxx'

答案 5 :(得分:1)

s = "I Me You"

In [2]: s.rsplit(None, 1)[-1] + ' ' + s.rsplit(None, 1)[0]
Out[3]: "You I Me"

答案 6 :(得分:0)

我的两分钱:

'string is a test this'

输出

{{1}}