Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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_Tuples - Fatal编程技术网

Python 排序元组

Python 排序元组,python,tuples,Python,Tuples,我想用这个方法对元组排序 如果(a1,b1)a1或(a1==a2和b2>b1) 该算法不应在适当的位置工作,预计它将接收范围为[0,99]的数字 Input: [(9, 7), (78, 24), (17, 74), (53, 81), (40, 43), (79, 82), (84, 46), (68, 53), (92, 95), (60, 38), (20, 62), (72, 57)] Output: [(9, 7), (17, 74), (20, 62), (40, 43), (53,

我想用这个方法对元组排序

如果(a1,b1)<(a2,b2),则a2>a1或(a1==a2和b2>b1)

该算法不应在适当的位置工作,预计它将接收范围为[0,99]的数字

Input:
[(9, 7), (78, 24), (17, 74), (53, 81), (40, 43), (79, 82), (84, 46), (68, 53),
(92, 95), (60, 38), (20, 62), (72, 57)]
Output:
[(9, 7), (17, 74), (20, 62), (40, 43), (53, 81), (60, 38), (68, 53), (72, 57),
(78, 24), (79, 82), (84, 46), (92, 95)]
我考虑使用计数排序的概念,因为时间复杂度必须是O(n),但是列表计数器的长度将是100*100。这不是一个非常有效的方法

您有什么建议吗?

内置函数应该适合您的情况,它会比较第一个元素,如果两个项目的第一个元素相同,则会比较第二个元素,以此类推

在以下示例中,
简单列表[0][0]
简单列表[1][0]
相等(4和4),因此比较
简单列表[0][1]
简单列表[1][1]
(3和5):

>>> simple_list = [(4, 3), (4, 5), (1, 2)]
>>> sorted(simple_list)
[(1, 2), (4, 3), (4, 5)]
对于您的情况,请尝试以下操作:

tuples_list = [(9, 7), (78, 24), (17, 74), (53, 81), (40, 43), (79, 82), (84, 46), (68, 53), (92, 95), (60, 38), (20, 62), (72, 57)]

sorted_list = sorted(tuples_list)
输出:

>>> sorted(tuples_list)
[(9, 7), (17, 74), (20, 62), (40, 43), (53, 81), (60, 38), (68, 53), (72, 57), (78, 24), (79, 82), (84, 46), (92, 95)]

这应该是现成的。尝试排序(输入列表)。