Python 排序元组
我想用这个方法对元组排序 如果(a1,b1)<(a2,b2),则a2>a1或(a1==a2和b2>b1) 该算法不应在适当的位置工作,预计它将接收范围为[0,99]的数字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,
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)]
这应该是现成的。尝试排序(输入列表)。