关于python:通过具有多个参数的函数对列表进行排序

Sort list by a function with several parameters

如何使用function的结果对下面列表中的一些对象进行排序?

1
2
3
4
5
sorted_list = []
for c in objects:
    sorted_list.insert(c)

    sorted_list.sort(function(c))

有点像地图

例子:

1
2
3
4
5
6
7
objects = [node3, node2, node1, node4]

def function (node, player):
   if (node == node1): return 1
   else if (node == node2): return 2
   else if (node == node3): return 3
   else if (node == node4): return 4

输出:

1
objects = [node1, node2, node3, node4]


使用排序功能作为排序键:

1
sorted_list.sort(key=lambda node: function(node, player))

我不知道你为什么不使用player作为参数传递。如果你把它取下来,钥匙会更简单:

1
sorted_list.sort(key=function)