如何在Python中反转列表的一部分(切片)?

49 投票
8 回答
72733 浏览
提问于 2025-04-16 09:43

为什么这个不管用呢?

# 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[:]

来复制整个列表。

撰写回答