Bagaimanakah saya boleh menggunakan fungsi lambda dalam hujah `kunci` fungsi `sorted()` untuk menyesuaikan pengisihan dalam Python?

Susan Sarandon
Lepaskan: 2024-10-30 08:34:02
asal
1002 orang telah melayarinya

How can I use lambda functions within the `sorted()` function's `key` argument to customize sorting in Python?

Memahami Sintaks Kunci Lambda Sorted

Fungsi sorted() menyediakan cara yang serba boleh untuk menyusun semula senarai mengikut kriteria tertentu. Argumen utama membolehkan kami menggunakan logik tersuai untuk mengisih, memanfaatkan fungsi lambda tanpa nama.

Sintaks Lambda Diterangkan

Fungsi Lambda ringkas, fungsi sebaris ditakrifkan menggunakan kata kunci lambda. Sintaks umum ialah:

lambda input_variable(s): expression
Salin selepas log masuk

Mereka mengambil pembolehubah input dan melaksanakan operasi yang ditentukan oleh ungkapan.

Argumen Utama dan Lambda

Dalam konteks sorted() , hujah utama mengambil boleh panggil yang memproses setiap elemen senarai dan menghasilkan nilai yang digunakan untuk mengisih. Cara paling biasa untuk menentukan fungsi ini adalah menggunakan lambda. Sintaks:

sorted(list, key=lambda element: expression)
Salin selepas log masuk

Contohnya:

sorted([1, 3, 2], key=lambda x: x % 2)
Salin selepas log masuk

Fungsi lambda mengira baki setiap elemen apabila dibahagikan dengan 2, pada asasnya mengembalikan [0, 1, 0] untuk senarai [1, 3, 2]. Senarai yang diubah ini kemudiannya digunakan untuk mengisih, menghasilkan [1, 3, 2].

Memahami Transformasi Utama

Argumen utama mengubah senarai asal menjadi senarai baharu berdasarkan nilai dikembalikan oleh fungsi lambda. Mari kita ilustrasikan:

Contoh:

sorted([3, 6, 3, 2, 4, 8, 23], key=lambda x: x % 2)
Salin selepas log masuk

Fungsi Lambda:

lambda x: x % 2
Salin selepas log masuk

Senarai Asal:

[3, 6, 3, 2, 4, 8, 23]
Salin selepas log masuk

Senarai Berubah:

[0, 1, 0, 1, 1, 1, 0]  # 0 indicates odd, 1 indicates even
Salin selepas log masuk

Senarai Isih:

[3, 3, 23, 6, 2, 4, 8]  # Odd numbers first, then even numbers
Salin selepas log masuk

Gerakan untuk Transformasi Utama

Senarai yang diubah pada asasnya ialah topeng yang mendedahkan sifat yang ingin kita susun mengikut, dalam kes ini, ganjil/genap. Sorted() kemudian mengisih senarai asal menggunakan tertib nilai yang diubah, menghasilkan tertib diisih yang diingini.

Menggunakan Lambda untuk Isih Kompleks

Kepelbagaian fungsi lambda membolehkan senario pengisihan kompleks . Sebagai contoh, fungsi lambda berikut mengisih senarai tupel berdasarkan elemen kedua:

sorted([(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)], key=lambda x: x[1])
Salin selepas log masuk

Hasilnya ialah senarai diisih berdasarkan elemen kedua setiap tupel.

Dengan memahami sintaks dan konsep di sebalik fungsi lambda dalam hujah utama sorted(), anda boleh menyesuaikan logik pengisihan anda dengan berkesan untuk pelbagai senario.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan fungsi lambda dalam hujah `kunci` fungsi `sorted()` untuk menyesuaikan pengisihan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!