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.
Fungsi Lambda ringkas, fungsi sebaris ditakrifkan menggunakan kata kunci lambda. Sintaks umum ialah:
lambda input_variable(s): expression
Mereka mengambil pembolehubah input dan melaksanakan operasi yang ditentukan oleh ungkapan.
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)
Contohnya:
sorted([1, 3, 2], key=lambda x: x % 2)
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].
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)
Fungsi Lambda:
lambda x: x % 2
Senarai Asal:
[3, 6, 3, 2, 4, 8, 23]
Senarai Berubah:
[0, 1, 0, 1, 1, 1, 0] # 0 indicates odd, 1 indicates even
Senarai Isih:
[3, 3, 23, 6, 2, 4, 8] # Odd numbers first, then even numbers
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.
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])
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!