代码1:排序工作的关键参数如何?
>>> sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
代码2:
>>> student_tuples = [
... ('john', 'A', 15),
... ('jane', 'B', 12),
... ('dave', 'B', 10),
... ]
>>> from operator import itemgetter, attrgetter
>>>
>>> sorted(student_tuples, key=itemgetter(2))
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
为什么在代码1中,()
省略key=str.lower
,并且如果被包括括号它报告错误,但在代码2 key=itemgetter(2)
,所述括号保留?
谢谢你对水晶般清晰的解释,比雷埃夫斯! –