4
使用自定义比较功能对列表列表进行排序
我知道有几个这样的问题,但是它们似乎对我没有用。 我有一个列表,5元素乘以50。我想通过对每个元素应用自定义比较功能来对列表进行排序。此函数计算要对元素进行排序的列表的适用性。我创建了两个函数,比较和适应性: def compare(item1, item2): return (fitness(item1) < fitness(item2)) 和 def fitness(item): return item[0]+item[1]+item[2]+item[3]+item[4] 然后我尝试通过以下方式致电给他们: sorted(mylist, cmp=compare) 要么 sorted(mylist, key=fitness) 要么 sorted(mylist, cmp=compare, key=fitness) 要么 sorted(mylist, cmp=lambda x,y: compare(x,y)) 我也尝试了具有相同参数的list.sort()。但是无论如何,函数都不会将列表作为参数,而是作为参数None。我不知道为什么,这主要来自C ++,这与我对回调函数的任何想法相矛盾。如何使用自定义功能对列表进行排序? 编辑 我发现了我的错误。在创建原始列表的链中,一个函数未返回任何内容,但使用了返回值。抱歉打扰了