根据内部列表的多个整数元素对列表进行排序

时间:2019-06-12 17:20:13

标签: python list sorting

我要基于两个因素对列表列表进行排序:

  • PRIMARILY:列表必须基于列表中每个列表的第二个元素以升序排序
  • 如果在某些情况下,各个列表具有相同的第二个元素,那么对于那些特定的列表,必须基于第一个元素以升序进行排序。

data_input: [ [78, 10], [130, 0], [10, 1], [100, 100], [2, 2], [1, 99], [100, 0] ]

根据第一个标准进行排序,我正在使用此代码

data_input.sort(key= lambda x: x[1])

但也想不出任何方法来实施第二个标准

所需的输出:

  • 数据输入:[ [100,0] [130,0] ,[10,1],[2,2],[78,10], [1,99],[100,100]] *

2 个答案:

答案 0 :(得分:2)

您可以将sorteditemgetter结合使用,以指定从子列表中提取项目的顺序:

<template>
  <div>
    <button @click="replyDaddy">Reply Daddy</button>
  </div>
</template>

<script>
export default {
  name: "Child",
  methods: {
    replyDaddy() {
      this.$emit("listenerChild", "I'm here my Daddy!");
    }
  }
};
</script>

答案 1 :(得分:1)

使用元组作为key的{​​{1}}参数:

sorted

这基本上要求Python以data_input = [ [78, 10], [130, 0], [10, 1], [100, 100], [2, 2], [1, 99], [100, 0] ] print(sorted(data_input, key=lambda x: (x[1], x[0]))) # [[100, 0], [130, 0], [10, 1], [2, 2], [78, 10], [1, 99], [100, 100]] 排序,而对于相同的x[1],则以x[1]排序。