理解排序列表的sorted(key=lambda: ...)`语法
Python中的sorted()函数提供对列表进行排序的简洁方法。对包含嵌套元素或元组的复杂列表进行排序时,您可以使用 key 参数自定义排序。
Lambda 函数语法
key 参数中的 lambda 函数是匿名函数,指定如何导出列表中每个元素的排序标准。其语法为:
lambda input_variable(s): expression
例如:
<code class="python">f = lambda x: x + 1 f(10) # Returns 11</code>
sorted()中的键函数
在sorted()的上下文中,key=lambda指定的键函数应用于列表中的每个元素,结果用于确定排序顺序。 lambda 函数返回的值充当排序的代理值。
此机制允许您根据每个元素的特定属性或特征(而不是元素本身)对原始列表进行排序。例如,您可以按第二个元素对元组列表进行排序:
<code class="python">mylist = [(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)] sorted(mylist, key=lambda x: x[1]) # Output: [(6, 2, 8), (3, 5, 8), (6, 8, 5), (2, 9, 4)] # Sorted by the second element of each tuple</code>
布尔值和排序
当 key 函数返回布尔值时,排序基于值的真实性。具有 True 值的元素放置在具有 False 值的元素之前。但请注意,具有相同真值的元素的原始顺序将被保留:
<code class="python">mylist = [3, 6, 3, 2, 4, 8, 23] sorted(mylist, key=lambda x: x % 2 == 0) # Output: [3, 3, 23, 6, 2, 4, 8] # Odd numbers (False) come before even numbers (True) # Even numbers remain in their original order</code>
使用复杂数据结构的密钥
密钥函数可以是与复杂的数据结构一起使用来提取和比较特定属性。例如,考虑代表学生的字典列表:
<code class="python">students = [ {'name': 'John', 'age': 20}, {'name': 'Alice', 'age': 22}, {'name': 'Bob', 'age': 18}, ]</code>
要使用排序()函数按年龄对学生进行排序,您可以将 key 参数与 lambda 函数结合使用:
<code class="python">sorted(students, key=lambda x: x['age'])</code>
这个 lambda 函数从每个字典中提取年龄属性并返回它,允许根据年龄对元素进行排序。
以上是Python 中的'sorted(key=lambda: ...)”函数如何对列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!