在Python中,如何排列0和1的向量,使最后一个索引中的向量保持在底部?

在Python中,如何排列0和1的向量,使最后一个索引中的向量保持在底部?,python,performance,sorting,Python,Performance,Sorting,有没有一种有效的方法可以在Python中重新组织此向量列表: [ [0,0,1,0,0,1], [0,0,1,0,0,0], [0,0,1,0,1,0], [0,1,0,0,0,0], [0,1,1,0,0,1], [0,0,1,0,1,1] ] 在某种程度上,在最后一个索引上具有…,1]的向量保持在底部,然后是在最后一个索引上具有序列…,1,0]的向量,它们是…,1,0,0],依此类推 [ [0,1,0,0,0,0], [0,0,1,0,0,0], [0

有没有一种有效的方法可以在Python中重新组织此向量列表:

[
  [0,0,1,0,0,1],
  [0,0,1,0,0,0],
  [0,0,1,0,1,0],
  [0,1,0,0,0,0],
  [0,1,1,0,0,1],
  [0,0,1,0,1,1]
]
在某种程度上,在最后一个索引上具有
…,1]
的向量保持在底部,然后是在最后一个索引上具有序列
…,1,0]
的向量,它们是
…,1,0,0]
,依此类推

[
  [0,1,0,0,0,0],
  [0,0,1,0,0,0],

  [0,0,1,0,1,0],

  [0,1,1,0,0,1],
  [0,0,1,0,0,1],
  [0,0,1,0,1,1]
]

内部顺序实际上并不重要。

按反向元素排序,因此它比较列表末尾的子列表;按升序排列,带零的列表将出现在具有较高优先级的列表末尾元素的列表之前:

lst = [
  [0,0,1,0,0,1],
  [0,0,1,0,0,0],
  [0,0,1,0,1,0],
  [0,1,0,0,0,0],
  [0,1,1,0,0,1],
  [0,0,1,0,1,1]
]

sorted(lst, key=lambda x: x[::-1])

#[[0, 1, 0, 0, 0, 0],
# [0, 0, 1, 0, 0, 0],
# [0, 0, 1, 0, 1, 0],
# [0, 0, 1, 0, 0, 1],
# [0, 1, 1, 0, 0, 1],
# [0, 0, 1, 0, 1, 1]]

按反向元素排序,因此它会比较列表末尾的子列表;按升序排列,带零的列表将出现在具有较高优先级的列表末尾元素的列表之前:

lst = [
  [0,0,1,0,0,1],
  [0,0,1,0,0,0],
  [0,0,1,0,1,0],
  [0,1,0,0,0,0],
  [0,1,1,0,0,1],
  [0,0,1,0,1,1]
]

sorted(lst, key=lambda x: x[::-1])

#[[0, 1, 0, 0, 0, 0],
# [0, 0, 1, 0, 0, 0],
# [0, 0, 1, 0, 1, 0],
# [0, 0, 1, 0, 0, 1],
# [0, 1, 1, 0, 0, 1],
# [0, 0, 1, 0, 1, 1]]

搜索“python排序教程”。您希望使用最后一个元素
item[-1]
键对列表项进行排序。在“python排序教程”上搜索。您想使用最后一个元素
item[-1]
的键对列表项进行排序。谢谢,@Psidom,我没有意识到我可以这样使用key参数。这明显比在附加到新结构的向量上迭代每个元素位置要快得多。谢谢,@Psidom,我没有意识到我可以这样使用关键参数。这明显比在附加到新结构的向量上迭代每个元素位置要快得多。