# 将字符串中的元素完成特定的向右移动,参数:字符串、移动长度 如:abcdef,移动2,结果:efabcd
#原始方法,基本思想:末尾元素移动到开头,其他的元素依次向后移动.代码如下:
1
2
3
4
5
6
7
8
9
|
def move(lt, n):
lt = list (lt) #将字符串转换为列表
for i in range (n % len (lt)): #确定移动几次,比如说移动从长度和列表的长度相同时,就没必要移动
t = lt[ len (lt) - 1 ] #取出末尾元素
for j in reversed ( range ( len (lt) - 1 )): #逆序遍历除末尾元素的列表
lt[j + 1 ] = lt[j] #将前一个元素的值赋值给后一个元素
lt[ 0 ] = t #将之前取出的末尾元素的值赋值给列表的首位
return "".join(lt) #将列表中拼接成字符串,并返回
|
上述方法是我基于c语言编写的并未体现python这门语言的好处,下面列出几种方法,可以体现出python的好处
1
2
3
4
5
6
7
8
9
|
def move(lt, n):
lt = list (lt) #将字符串转换为列表
for i in range (n % len (lt)): #确定进行几次移动
lt.insert( 0 , lt.pop()) #通过列表的pop方法取出末尾元素,在通过insert函数将取出的元素插入到列表的首位
return "".join(lt)
def move(lt, n):
for i in range (n % len (lt)): #确定进行几次移动
lt = lt[ - 1 ] + lt[ 0 : - 1 ] #通过字符串的切片,切除最后一个元素,然后加上从开头到倒数第二个元素
return lt
|
以上两种方法可以体现出python语言的简洁性,但作为程序员不能止步不前,c语言才是根本,第一种方法使用c语言的思想编用python语言编写的.
以上这篇python 将字符串完成特定的向右移动方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/chen1042246612/article/details/85047907