Bagaimanakah fungsi `sorted(key=lambda: ...)` berfungsi untuk menyusun senarai dalam Python?

Patricia Arquette
Lepaskan: 2024-10-26 09:44:29
asal
403 orang telah melayarinya

How does the `sorted(key=lambda: ...)` function work for sorting lists in Python?

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
Salin selepas log masuk
  • input_variable(s): Pembolehubah untuk beroperasi.
  • ungkapan: Pengiraan atau nilai untuk dikembalikan.

Contohnya:

<code class="python">f = lambda x: x + 1
f(10)  # Returns 11</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan