python reverse反转部分数组

python3中,list有个reverse函数,用来反转列表元素,但是如果想要反转部分元素呢?

a = [1,2,3,4,5]
a[0:3].reverse()  # not work!!!
print(a)
>>[1, 2, 3, 4, 5]

a = [1,2,3,4,5]
c = a[0:3]
c.reverse()    #曲线救国方法,就是开销大了点
a[:3] = c[:]
print(a)
>>[3, 2, 1, 4, 5]

a = [1,2,3,4,5]
a[0:3] = list(reversed(a[0:3]))  #work!注意reversed返回的是一个iterator(迭代器),反转前3个数
print(a)
>>[3, 2, 1, 4, 5]

a = [1,2,3,4,5]
a[0:3] = a[2::-1]   #work! 参数略复杂,[]中第一个参数是要反转的最后一个数的index,比如这里要翻转前三个数字 1 2 3,
               #那么第一个参数就是3的index,所以这里是2,第二个参数是要反转的第一个数的index,如果从第一个数开始那么可以省略
               #最后一个参数是-1,表示反序
print(a)
>>[3, 2, 1, 4, 5]

猜你喜欢

转载自blog.csdn.net/weixin_41043240/article/details/79930038