之前有个文章中介绍了列表循环移位的3中方法
其中第二种方法虽然更直接地翻译了题目的要求,但是显得还是有点啰嗦,如果充分利用Python中的切片技术,可以写成下面更简洁的形式:
>>> def demo(lst, k):
x = lst[k-1::-1]
y = lst[:k-1:-1]
return list(reversed(x+y))
#测试用的列表
>>> lst = list(range(20))
#循环左移3位
>>> demo(lst, 3)
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2]
#循环左移5位
>>> demo(lst, 5)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4]
#循环右移3位
>>> demo(lst, -3)
[17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
已到达温州,宾馆有网络,正好今天有时间就发一篇吧。
标签:11,妙用,13,12,10,Python,demo,lst,移位 From: https://blog.51cto.com/u_9653244/6450807