Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以用排序的方法对列表的一部分进行排序吗_Python_List_Tuples - Fatal编程技术网

Python 我可以用排序的方法对列表的一部分进行排序吗

Python 我可以用排序的方法对列表的一部分进行排序吗,python,list,tuples,Python,List,Tuples,好的,所以我正在争取一段时间来做这个节目。我的问题是,我可以使用sorted命令对列表的一部分/片段进行排序吗。 我的程序的目的是输入一个任意排列的元组列表,并首先按第二个元素排序,然后按第一个元素排序。 例如,列表[(12,2)、(13,4)、(11,1)、(14,2)、(7,2)]通过;函数应该首先将其排序为[(11,1)、(12,2)、(14,2)、(7,2)、(13,4)],然后排序为[(11,1)、(7,2)、(12,2)、(14,2)、(13,4)]第一部分很简单,但我被卡在第二部分

好的,所以我正在争取一段时间来做这个节目。我的问题是,我可以使用
sorted
命令对列表的一部分/片段进行排序吗。 我的程序的目的是输入一个任意排列的元组列表,并首先按第二个元素排序,然后按第一个元素排序。 例如,列表
[(12,2)、(13,4)、(11,1)、(14,2)、(7,2)]
通过;函数应该首先将其排序为
[(11,1)、(12,2)、(14,2)、(7,2)、(13,4)]
,然后排序为
[(11,1)、(7,2)、(12,2)、(14,2)、(13,4)]
第一部分很简单,但我被卡在第二部分。以下是我尝试过的:

def Sort(l):
    l = sorted(l, key=lambda l: l[1]) #for the first sort
    i = 0
    while i < len(l)-1:
        if l[i][1] == l[i+1][1]:
            z=i
            y = i +1
            print(z,i)
            while l[z][1] == l[z+1][1] and z < len(l)-1 and y<len(l) -1 :
                print(z)
                if l[z][0] > l[y][0]:
                    (l[z],l[z+1]) = (l[z+1],l[z])
                    print('if',l)
                y = y+1
                i= i+1
        i = i+1
    print(l)
    return l  
def排序(l):
l=已排序(l,key=lambda l:l[1])#对于第一次排序
i=0
而i

我该如何实现第二部分!我是python新手

使用操作员模块中的
itemgetter

from operator import itemgetter
keyfunc = itemgetter(1, 0) # sort by index 1, then index 0
sorted(l, key=keyfunc)
# [(11, 1), (7, 2), (12, 2), (14, 2), (13, 4)]

使用操作员模块中的
itemgetter

from operator import itemgetter
keyfunc = itemgetter(1, 0) # sort by index 1, then index 0
sorted(l, key=keyfunc)
# [(11, 1), (7, 2), (12, 2), (14, 2), (13, 4)]

如果我正确理解您的逻辑,您只需使用
sorted

sorted(l, key=lambda x: (x[1], x[0]))

>>> [(11, 1), (7, 2), (12, 2), (14, 2), (13, 4)]

如果我正确理解您的逻辑,您只需使用
sorted

sorted(l, key=lambda x: (x[1], x[0]))

>>> [(11, 1), (7, 2), (12, 2), (14, 2), (13, 4)]

谢谢你给我们看你的作业;我相信这将很快成为ppcg。试试我很抱歉什么是ppcg。抱歉,如果我问了一些错误和愚蠢的问题@Blacksilver可能重复感谢你给我们看了你的作业;我相信这将很快成为ppcg。试试我很抱歉什么是ppcg。抱歉,如果我问了一些错误和愚蠢的问题@Blacksilver可能是非常优雅的解决方案的副本,propsVery优雅的解决方案,props