如何在Python中反转一个列表的列表?

4
我在想如何在Python中翻转列表的列表。例如,
原始列表:list = [[1,2,3],[4,5,6],[7,8,9]] 输出结果:new_list = [[7,8,9],[4,5,6],[1,2,3]] 现在,我正在尝试这样做:
new_list = reversed(list)

然而,这似乎无效。
1个回答

10
In [24]: L = [[1,2,3],[4,5,6],[7,8,9]]

In [25]: L[::-1]
Out[25]: [[7, 8, 9], [4, 5, 6], [1, 2, 3]]

记录一下:reversed 惰性地返回外部列表的反转元素;您需要迭代它返回的值,或者将其包装在 list 构造函数中以将其转换为新的 list。另外,您可以通过调用 .reverse() 来就地反转 list。但是,L[::-1] 语法是规范的“返回浅复制并按相反顺序排列”的方法。 - ShadowRanger
“in place” 的意思是实际修改和反转原始列表,而不是返回已经反转的副本,对吗?另外,请问能否指向 [::-1] 的文档? - oldboy
@oldboy:你对in-place的理解是正确的。此外,这里有有关切片的文档:https://docs.python.org/3/library/functions.html#slice - inspectorG4dget
谢谢!让我看看我是否理解正确:由于省略了 startend 参数,这表示使用整个索引集合,并且 -1step 参数指示解释器从集合末尾开始? - oldboy
@oldboy:是的。此外,在这种情况下,Python 足够智能,知道 start 应该是最后一个索引,而 stop 应该是第一个索引之前。因此,你的 -1 步长从最后一个索引到第一个索引。 - inspectorG4dget
太棒了,谢谢你! - oldboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接