反转子列表的位置

时间:2013-08-31 01:04:20

标签: python list numpy position

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

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)但显然根据其中的值有多大来定位子列表。

1 个答案:

答案 0 :(得分: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就地修改列表并且不返回列表。