在比较的时候为什么不写"key="会报错!
错误如下:
Traceback (most recent call last):
File "index.py", line 2, in
print sorted(L,lambda x:x)
TypeError: () takes exactly 1 argument (2 given)
错误如下:
Traceback (most recent call last):
File "index.py", line 2, in
print sorted(L,lambda x:x)
TypeError: () takes exactly 1 argument (2 given)
2018-03-15
sorted() 包含三个默认参数,iterable,cmp,key
sorted
(iterable[,
cmp
,[,key[,reverse
=
True
]]])
1.cmp
指定一个定制的比较函数,这个函数接收两个参数(iterable的元素)
2.key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为
None
在这道题中,L2 = sorted(L1, lambda p1, p2: cmp(p1.name, p2.name)),
匿名函数有两个参数 p1,p2,所以是cmp函数,
你可以改为L2 = sorted(L1, cmp=lambda p1, p2: cmp(p1.name, p2.name))
举报