详细解释lambda
匿名函数与sorted
函数结合使用时的key
参数含义。
在Python中,sorted()
函数是一个内置函数,用于对任何可迭代对象(如列表、元组等)进行排序。其基本语法如下:
Python
1sorted(iterable, key=None, reverse=False)
iterable
:需要排序的对象。key
:指定一个函数作为关键字,该函数会被应用到序列的每个元素上,并根据函数返回值进行排序。这个函数通常用来提取或转换序列中元素的部分内容以决定排序依据。reverse
:布尔值,默认为False
,表示升序排序;如果设置为True
,则按降序排序。
lambda
是Python中的匿名函数,它允许你快速定义一个简单的、单行的、无需命名的函数。例如:
Python
1x = lambda a: a * 2
2print(x(5)) # 输出10,因为这里定义了一个匿名函数,作用是将输入值乘以2
当lambda
和sorted
的key
参数结合使用时,你可以方便地根据序列中每个元素的某个属性或计算结果来排序。比如,如果你有一个包含元组的列表,每个元组代表一个人的姓名和年龄:
Python
1people = [('Alice', 23), ('Bob', 27), ('Charlie', 21)]
现在,如果你想按照年龄从小到大排序这个列表,就可以这样写:
Python
1sorted_people_by_age = sorted(people, key=lambda x: x[1])
这里的lambda x: x[1]
是一个匿名函数,它接受一个元组作为输入(即列表中的人名年龄对),并返回元组的第二个元素(年龄)。因此,sorted()
函数会根据每个人的年龄对整个列表进行排序,而不是直接比较整个元组。最终得到的sorted_people_by_age
将是按照年龄升序排列的新列表。