当需要对字符串进行位移操作时,可以使用字符串切片来进行操作。Python中字符串切片的操作形式为s[start:end:step]
,其中start为起始位置(包含该位置),end为结束位置(不包含该位置),step为步长(正数表示从左往右取值,负数表示从右往左取值,默认为1)。
实现循环左移的一种简单方法是将字符串切成两部分:第一部分为移动的位数对原字符串长度取模后的部分(即左移位数),第二部分则为剩余的部分。将这两个部分分别进行反转再整体反转即可得到结果。
示例1:假设需要将字符串"abcd1234"
左移3位:
s = "abcd1234" # 原字符串
n = 3 # 左移位数
t1 = s[:n][::-1] # 第一部分反转
t2 = s[n:][::-1] # 第二部分反转
res = (t1+t2)[::-1] # 整体反转得到结果
print(res) # 输出结果:d1234abc
示例2:假设需要将字符串"Hello World!"
左移5位:
s = "Hello World!" # 原字符串
n = 5 # 左移位数
t1 = s[:n][::-1] # 第一部分反转
t2 = s[n:][::-1] # 第二部分反转
res = (t1+t2)[::-1] # 整体反转得到结果
print(res) # 输出结果: World!Hello
附注:以上例子中,列表切片超出边界时Python不会报错,只会返回尽可能多的元素。在示例2中,第二部分t2
切片直接使用s[n:][::-1]
也可以替换为s[n:len(s)][::-1]
来保证切片不会超界。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python字符串循环左移 - Python技术站