Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah fungsi `sorted(key=lambda: ...)` berfungsi untuk menyusun senarai dalam Python?

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

Patricia Arquette
Patricia Arquetteasal
2024-10-26 09:44:29308semak imbas

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
  • 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>

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!

Kenyataan:
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