元组排序列表 (Python)
Sorting list of tuples (Python)
我是 python 的新手,出于练习的原因,我正在尝试解决以下任务:
给定一个元组列表
A = [(17, 8), (17, 12), (7, 2), (9, 15), (9, 17), (1, 4), (3, 9), (12, 14)]
我的目标是:根据集合的第一个元素,如果两个集合的第一个元素是同理,按照第二个元素降序排列。 --> x <= x', y <= y'
所以,我想得到结果:
A = [(17, 12), (17, 8), (12, 14), (9, 17), (9, 15), (7, 2), (3, 9), (1, 4)]
我试过使用以下代码:
A.sort(reverse = True, key=lambda x: x[0] )
但它只是根据第一个元素排序,我知道它是否在 n log n 时间。
你能帮我一下吗?
谢谢!
要根据两个值进行排序,删除关键函数:
>>> A.sort(reverse = True)
>>> A
[(17, 12), (17, 8), (12, 14), (9, 17), (9, 15), (7, 2), (3, 9), (1, 4)]
是的,Python 在 O(n log n)
中排序,有关更多信息,请查看维基百科上的 Timsort,算法 Python 用于排序。
元组自然地按第一个元素排序,然后是第二个元素:
A.sort(reverse = True)
按要求输出。
Python 带有比较函数(类似于 C++)的内置 sorted() 方法可以工作
sorted(tup, key = lambda x: x[0])
好了:
A = [(17, 8), (17, 12), (7, 2), (9, 15), (9, 17), (1, 4), (3, 9), (12, 14)]
reverse_sorted = []
for item in reversed(sorted(A)):
reverse_sorted.append(item)
print(reverse_sorted)
至于补充一下对方的优秀答案。使用“python 列表排序时间复杂度”在 Google 上搜索将 return 为您提供有关 python 的排序时间复杂度(其他人已经在上面写过)的内容。
此外,如果您需要停止使用 python 的内置排序功能。多年来创建了许多不同的 sorting algorithms,您可以重新创建它们具有所需的时间复杂度。如果您是一般编程新手,这将是一个很好的“培训”练习。
我是 python 的新手,出于练习的原因,我正在尝试解决以下任务:
给定一个元组列表
A = [(17, 8), (17, 12), (7, 2), (9, 15), (9, 17), (1, 4), (3, 9), (12, 14)]
我的目标是:根据集合的第一个元素,如果两个集合的第一个元素是同理,按照第二个元素降序排列。 --> x <= x', y <= y'
所以,我想得到结果:
A = [(17, 12), (17, 8), (12, 14), (9, 17), (9, 15), (7, 2), (3, 9), (1, 4)]
我试过使用以下代码:
A.sort(reverse = True, key=lambda x: x[0] )
但它只是根据第一个元素排序,我知道它是否在 n log n 时间。
你能帮我一下吗? 谢谢!
要根据两个值进行排序,删除关键函数:
>>> A.sort(reverse = True)
>>> A
[(17, 12), (17, 8), (12, 14), (9, 17), (9, 15), (7, 2), (3, 9), (1, 4)]
是的,Python 在 O(n log n)
中排序,有关更多信息,请查看维基百科上的 Timsort,算法 Python 用于排序。
元组自然地按第一个元素排序,然后是第二个元素:
A.sort(reverse = True)
按要求输出。
Python 带有比较函数(类似于 C++)的内置 sorted() 方法可以工作
sorted(tup, key = lambda x: x[0])
好了:
A = [(17, 8), (17, 12), (7, 2), (9, 15), (9, 17), (1, 4), (3, 9), (12, 14)]
reverse_sorted = []
for item in reversed(sorted(A)):
reverse_sorted.append(item)
print(reverse_sorted)
至于补充一下对方的优秀答案。使用“python 列表排序时间复杂度”在 Google 上搜索将 return 为您提供有关 python 的排序时间复杂度(其他人已经在上面写过)的内容。
此外,如果您需要停止使用 python 的内置排序功能。多年来创建了许多不同的 sorting algorithms,您可以重新创建它们具有所需的时间复杂度。如果您是一般编程新手,这将是一个很好的“培训”练习。