如何编写等效于get_name()函数的Lambda表达式用于sorted排序?
解决方案
你只需要让Lambda表达式返回一个包含Names和House的元组,和get_name函数的返回值完全一致即可——Python的sorted函数会自动按照元组内元素的顺序依次比较(先比对第一个元素,若相等则比对第二个),完全匹配你需要的排序逻辑。
修改后的代码如下:
for student in sorted(students, key=lambda student: (student['Names'], student['House'])): print(f"{student['Names']} is in {student['House']}")
等效性说明
你定义的get_name函数:
def get_name(list): return list['Names'], list['House']
和上面的Lambda表达式完全等效,两者都会为每个学生对象返回一个(姓名, 学院)的元组,作为sorted函数的排序依据,最终实现先按姓名排序、姓名相同时按学院排序的需求。
内容的提问来源于stack exchange,提问作者Big_Port
相关产品推荐
相关产品推荐

