我们有,例如:
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以及如何分配?
答案 0 :(得分:0)
函数r
中的lambda r: r['fname']
参数接收数组rows
的每个元素。然后,lambda函数定义将按函数sorted()
排序的键。在这种情况下,密钥将为fname
。
是调用lambda函数的sorted()
吗?使用lambda的原因是因为该函数只能使用一次。
修改:阅读key docs