Java中如何实现ArrayList元素的前后移位与旋转?
Python 列表旋转实现(内置操作优先)
嘿,这个需求超容易搞定!用Python的切片操作(完全属于内置的便捷功能)就能实现,根本不用写复杂循环或者额外函数,简洁又高效。
向前旋转(左移一位)
你需要把 ['a', 'b', 'c', 'd'] 转成 ['b', 'c', 'd', 'a'],本质就是把第一个元素移到列表末尾。用切片的写法如下:
my_list = ['a', 'b', 'c', 'd'] forward_rotated = my_list[1:] + my_list[:1] print(forward_rotated) # 输出: ['b', 'c', 'd', 'a']
简单解释下:
my_list[1:]取列表从索引1到末尾的所有元素 →['b', 'c', 'd']my_list[:1]取列表从开头到索引1(不包含)的元素 →['a']- 把这两部分拼接起来,就完成了向前旋转。
向后旋转(右移一位)
要得到 ['d', 'a', 'b', 'c'],就是把最后一个元素移到列表开头,同样用切片就能搞定:
my_list = ['a', 'b', 'c', 'd'] backward_rotated = my_list[-1:] + my_list[:-1] print(backward_rotated) # 输出: ['d', 'a', 'b', 'c']
这里的逻辑也很直观:
my_list[-1:]用负索引直接取列表最后一个元素 →['d']my_list[:-1]取列表除了最后一个元素的所有部分 →['a', 'b', 'c']- 拼接后就实现了向后旋转。
扩展:支持旋转多位
如果以后需要旋转不止一位,比如左移2位、右移3位,这个方法也能直接扩展:
- 左移n位:
my_list[n:] + my_list[:n] - 右移n位:
my_list[-n:] + my_list[:-n]
比如左移2位的话,['a','b','c','d'] 会变成 ['c','d','a','b'],亲测好用~
内容的提问来源于stack exchange,提问作者user9311180
相关产品推荐
相关产品推荐

