Đạt*_*ành -3 python reverse list python-3.x
>>> L = [1, 2, 3, 4]
>>> L[0:2] = [8, 9]
>>> L
[8, 9, 3, 4]
>>> L[0:2].reverse()
>>> L
[8, 9, 3, 4]
Run Code Online (Sandbox Code Playgroud)
你能解释一下为什么L[0:2].reverse()不改变L清单吗?
L[0:2]创建列表的新副本,L[0:2].reverse()然后反转该副本.使用赋值给切片和仅读取切片(调用方法,甚至是改变对象的方法,不会将其转换为赋值)之间存在很大差异.
您可以使用切片分配来指定反转副本:
L[:2] = L[1:None:-1]
Run Code Online (Sandbox Code Playgroud)
要么
L[:2] = reversed(L[:2])
Run Code Online (Sandbox Code Playgroud)
这将以相反的顺序替换前2个元素和相同的元素:
>>> L = [42, 81, 13, 7]
>>> L[:2] = L[1:None:-1]
>>> L
[81, 42, 13, 7]
>>> L[:2] = reversed(L[:2])
>>> L
[42, 81, 13, 7]
Run Code Online (Sandbox Code Playgroud)
另请参阅Explain Python的切片表示法,了解其工作原理的详细信息.
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |