如何使用接收两个参数的函数对Python3列表进行排序?
排序带双参数函数的Python列表问题
问题场景
排序时依赖的函数需要接收两个参数,在使用sorted()的key参数时遇到参数传递问题。
问题代码
sorted_list = sorted(my_list_of_objects, key=my_number_giving_function(???,y))
单参数函数的参考写法
sort(my_list_of_objects, key=my_number_giving_function)
尝试的代码及报错
直接传递参数的写法:
sorted_list = sorted(my_list_of_objects, key=my_number_giving_function(y))
触发报错:
missing 1 required positional argument: y
解决方案
用lambda表达式作为中间层,自动接收列表中的每个元素作为第一个参数,同时传入固定的第二个参数y:
sorted_list = sorted(my_list_of_objects, key=lambda x: my_number_giving_function(x, y))
内容的提问来源于stack exchange,提问作者DevTTW
相关产品推荐
相关产品推荐

