理解排序清單的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中文網其他相關文章!