Memahami Sintaks sorted(key=lambda: ...)` untuk Senarai Isih
Fungsi sorted() dalam Python menyediakan cara ringkas untuk mengisih senarai. Apabila mengisih senarai kompleks yang mengandungi elemen bersarang atau tupel, anda boleh menyesuaikan pengisihan menggunakan argumen kunci.
Sintaks Fungsi Lambda
Fungsi lambda dalam hujah kunci ialah fungsi tanpa nama yang menentukan cara mendapatkan kriteria pengisihan untuk setiap elemen dalam senarai. Sintaksnya ialah:
lambda input_variable(s): expression
Contohnya:
<code class="python">f = lambda x: x + 1 f(10) # Returns 11</code>
Fungsi Kekunci dalam sorted()
Dalam konteks sorted(), fungsi kekunci yang ditentukan oleh key=lambda digunakan pada setiap elemen dalam senarai, dan hasilnya digunakan untuk menentukan susunan pengisihan. Nilai yang dikembalikan oleh fungsi lambda bertindak sebagai nilai pengganti untuk pengisihan.
Mekanisme ini membolehkan anda mengisih senarai asal berdasarkan sifat atau ciri khusus setiap elemen, bukannya elemen itu sendiri. Sebagai contoh, anda boleh mengisih senarai tupel mengikut elemen kedua:
<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>
Nilai dan Isih Boolean
Apabila fungsi kekunci mengembalikan nilai boolean, pengisihan adalah berdasarkan kebenaran nilai. Elemen dengan nilai True diletakkan sebelum elemen yang mempunyai nilai False. Walau bagaimanapun, ambil perhatian bahawa susunan asal elemen dengan nilai kebenaran yang sama dikekalkan:
<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>
Menggunakan Kunci untuk Struktur Data Kompleks
Fungsi utama boleh digunakan dengan struktur data yang kompleks untuk mengekstrak dan membandingkan atribut tertentu. Sebagai contoh, pertimbangkan senarai kamus yang mewakili pelajar:
<code class="python">students = [ {'name': 'John', 'age': 20}, {'name': 'Alice', 'age': 22}, {'name': 'Bob', 'age': 18}, ]</code>
Untuk mengisih pelajar mengikut umur menggunakan fungsi sorted(), anda boleh menggunakan hujah utama dengan fungsi lambda:
<code class="python">sorted(students, key=lambda x: x['age'])</code>
Fungsi lambda ini mengekstrak atribut umur daripada setiap kamus dan mengembalikannya, membenarkan elemen diisih berdasarkan umur.
Atas ialah kandungan terperinci Bagaimanakah fungsi `sorted(key=lambda: ...)` berfungsi untuk menyusun senarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!