按具有多个参数的函数对列表进行排序

时间:2018-12-12 22:44:44

标签: python

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

sorted_list = []
for c in objects:
    sorted_list.insert(c)

    sorted_list.sort(function(c))

有点像地图

示例:

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

输出:

objects = [node1, node2, node3, node4]

1 个答案:

答案 0 :(得分:1)

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

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

我不知道为什么不使用player作为参数。如果删除它,密钥将更加简单:

sorted_list.sort(key=function)