3

我有一个由几个子列表组成的列表:

list_1 = [[x1,y1,z1], [x2,y2,z2], [x3,y3,z3], [x4,y4,z4]]

如何反转子列表的位置,使其看起来像:

list_2 = [[x4,y4,z4], [x3,y3,z3], [x2,y2,z2], [x1,y1,z1]]

无需使用for循环。

我已经尝试过sorted(list_1, reverse=True),但这显然是根据它们内部的值有多大来定位子列表。

4

1 回答 1

8

使用reversed

>>> list_1 = [[1,2,3], [4,5,6], [0,1,2], [6,5,3]]
>>> list(reversed(list_1))
[[6, 5, 3], [0, 1, 2], [4, 5, 6], [1, 2, 3]]

[::-1]

>>> list_1[::-1]
[[6, 5, 3], [0, 1, 2], [4, 5, 6], [1, 2, 3]]

或复制list_1,然后reverse它:

>>> list_2 = list(list_1) # copy
>>> list_2.reverse()
>>> list_2
[[6, 5, 3], [0, 1, 2], [4, 5, 6], [1, 2, 3]]

注意reversed[::-1]返回列表的反向迭代器/反向副本,同时list.reverse就地修改列表并且不返回列表。

于 2013-08-31T01:05:56.680 回答