如何将sort方法中的lambda排序键函数改写为def定义的函数?
解答
你只需要定义一个接收单个参数的函数,让它返回和原lambda完全一致的元组即可:
def sort_key(x): return (x[0], int(x[1]), int(x[2]))
之后调用列表的sort方法时,直接传入这个函数名作为key参数:
lst.sort(key=sort_key)
本质上lambda就是匿名的极简函数,把它的逻辑抽离出来放到具名的def函数里,功能完全等价——都是为sort方法提供一个键函数,用来生成每个元素的排序依据值,排序时会按照元组内元素的顺序依次比较。
内容的提问来源于stack exchange,提问作者Tony Lin
相关产品推荐
相关产品推荐

