我尝试将字符串向右移动
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))
答案 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
没有参数接受所有空格字符),则可以在不使用列表的情况下执行此操作。使用rindex
或rpartition
等字符串方法:
>>> 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}}