在python中对队列操作后的列表进行排序

在python中对队列操作后的列表进行排序,python,list,sorting,queue,Python,List,Sorting,Queue,我必须首先对列表中的元素进行排队,然后根据子列表中的第一个元素对数组进行排序,但还要保持插入元素的顺序如果在子列表中具有相同编号的元素之前插入元素,那么之前插入的元素将首先出现 例: A是我们的列表,插入第一个元素为[1,2],第二个元素为[2,2],第三个元素为[1,1] 因此,数组将如下所示: A=[[1,2],[1,1],[2,2]]这里[1,1]没有放在前面,因为[1,2]是在[1,1]之前插入的 在插入元素后使用A=sorted(A)将导致A=[[1,1],[1,2],[2,2]] 使

我必须首先对列表中的元素进行排队,然后根据子列表中的第一个元素对数组进行排序,但还要保持插入元素的顺序如果在子列表中具有相同编号的元素之前插入元素,那么之前插入的元素将首先出现

例:

A是我们的列表,插入第一个元素为[1,2],第二个元素为[2,2],第三个元素为[1,1]

因此,数组将如下所示:
A=[[1,2],[1,1],[2,2]]
这里[1,1]没有放在前面,因为[1,2]是在[1,1]之前插入的

在插入元素后使用
A=sorted(A)
将导致
A=[[1,1],[1,2],[2,2]]

使用的代码:(n是元素数,b是要插入的子列表)

n=int(输入())
A=[]
对于范围(n)中的i:
b=列表(映射(str,input().rstrip().split())
A.2(b)
A=已排序(A)

您可以使用每个子列表的第一项作为键进行排序:

A.sort(key=lambda t: t[0])
因为当两项比较相等时,
sort
方法保持插入顺序

摘自:

sort()
方法保证是稳定的。如果排序是稳定的,则它是稳定的 保证不会更改比较的元素的相对顺序 相等-这有助于在多个过程中进行排序(例如, 按部门排序,然后按薪资等级排序)


您可以使用每个子列表的第一项作为关键字进行排序:

A.sort(key=lambda t: t[0])
因为当两项比较相等时,
sort
方法保持插入顺序

摘自:

sort()
方法保证是稳定的。如果排序是稳定的,则它是稳定的 保证不会更改比较的元素的相对顺序 相等-这有助于在多个过程中进行排序(例如, 按部门排序,然后按薪资等级排序)


您可以使用内置函数
enumerate
将插入顺序作为第二个元素来对列表进行排序:

A=[[1,2],[1,1],[2,2]]

A = [e[1] for e in sorted(enumerate(A), key=lambda x: (x[1][0], x[0]))]
# [[1, 2], [1, 1], [2, 2]]

您可以使用内置函数
enumerate
将插入顺序作为第二个元素来对列表进行排序:

A=[[1,2],[1,1],[2,2]]

A = [e[1] for e in sorted(enumerate(A), key=lambda x: (x[1][0], x[0]))]
# [[1, 2], [1, 1], [2, 2]]