如何在Python中反转列表的一部分(切片)?
为什么这个不管用呢?
# to reverse a part of the string in place
a = [1,2,3,4,5]
a[2:4] = reversed(a[2:4]) # This works!
a[2:4] = [0,0] # This works too.
a[2:4].reverse() # But this doesn't work
8 个回答
15
你可以考虑另一种方法,就是使用反向切片:
a[2:4] = a[3:1:-1]
63
只需要用切片的方法,然后把它反转过来就行。
a[2:4] = a[2:4][::-1]
24
a[2:4]
这个操作会从列表中选出一部分,并把这部分复制出来,然后用 a[2:4].reverse()
这个方法把复制的部分反转过来。这样做不会改变原来的列表。切片操作在 Python 中总是会创建一个新的副本——你可以使用
b = a[:]
来复制整个列表。