Python中用于排序(键=…)的Lambda函数

2024-06-10 02:05:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字典:

employees = [

    {'Name': 'Alan Turing', 'age': 25, 'salary': 10000},

    {'Name': 'Sharon Lin', 'age': 30, 'salary': 8000},

    {'Name': 'John Hopkins', 'age': 18, 'salary': 1000},

    {'Name': 'Mikhail Tal', 'age': 40, 'salary': 15000},

]

现在,我想使用Lambda对这本字典进行排序,并使用键“age”。你可以在下面找到我是如何试图解决这个问题的:

print(list(map(employees.sort(key = lambda x: x.get('age')), employees)))

我得到以下错误:

Traceback (most recent call last):

  File "<string>", line 10, in <module>

TypeError: 'NoneType' object is not callable

如何配置lambda以获得正确的输出

谢谢大家!


Tags: lambdanameage字典johntalsalarylin
1条回答
网友
1楼 · 发布于 2024-06-10 02:05:37

您想使用sorted而不是sort。前者返回一个新数组,而后者就地进行排序

print(list(sorted(employees, key = lambda x: x.get('age'))))

如果确实希望就地排序,则employees.sort(key=lambda x: x.get('age'))的版本可以正常工作。但是,对sort的调用不会返回任何结果,因此如果要验证结果,请添加另一个对print的调用

employees.sort(key=lambda x: x.get('age'))
print(employees)

相关问题 更多 >