lambda如何在有序的关键参数中工作?

时间:2018-05-14 12:48:04

标签: python-3.x

我们有,例如:

rows = [
{'fname': 'Brian', 'lname': 'Jones', 'uid': 1003},
{'fname': 'David', 'lname': 'Beazley', 'uid': 1002},
{'fname': 'John', 'lname': 'Cleese', 'uid': 1001},
{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}
]

rows_by_fname = sorted(rows, key=lambda r: r['fname'])

此,

key=lambda r: r['fname']

它是如何工作的?我的理解是r是lambda函数的输入,对吧?并且r必须等于行,但是我们从来没有调用lambda函数并传递任何参数,所以什么被分配给r以及如何分配?

1 个答案:

答案 0 :(得分:0)

函数r中的lambda r: r['fname']参数接收数组rows的每个元素。然后,lambda函数定义将按函数sorted()排序的键。在这种情况下,密钥将为fname

是调用lambda函数的sorted()吗?使用lambda的原因是因为该函数只能使用一次。

修改:阅读key docs