2024-05-15 10:28:19 发布
网友
如果我有这样定义的列表:
myresults = [ [1,"A",2], [2,"Z",1], [3,"J",0] ]
我需要整理一下名单。我知道我可以将sorted()函数与键函数lambda=x:x[i]一起使用,其中i是在列表中排序的位置。所以这应该是有效的:
sorted()
lambda=x:x[i]
i
并返回一个按子列表第二列排序的列表。在
你如何使用快速排序算法来处理多维列表?在
又快又脏的解决方案。 如果快速排序如下所示:
def qsort(lst): if len(lst) == 0: return [] else: pivot = lst[0] lesser = qsort([x for x in lst[1:] if x < pivot]) greater = qsort([x for x in lst[1:] if x >= pivot]) return lesser + [pivot] + greater
您只需使用索引变量按所需维度排序:
这个实现远不是最佳的,但我想你已经知道了。在
您可以通过以下方式实现:
import operator list.sort(key=operator.itemgetter(*args))
这也会起作用的。。在
您可以使用Python的operator模块。在
import operator sorted(myresults, key=operator.itemgetter(0)) [[1, 'A', 2], [2, 'Z', 1], [3, 'J', 0]] sorted(myresults, key=operator.itemgetter(1)) [[1, 'A', 2], [3, 'J', 0], [2, 'Z', 1]]
又快又脏的解决方案。 如果快速排序如下所示:
您只需使用索引变量按所需维度排序:
^{pr2}$这个实现远不是最佳的,但我想你已经知道了。在
您可以通过以下方式实现:
这也会起作用的。。在
^{pr2}$您可以使用Python的operator模块。在
相关问题 更多 >
编程相关推荐