Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisih Senarai mengikut Pelbagai Atribut dalam Python?
Isih data ialah aspek asas bagi banyak tugas pengaturcaraan. Apabila berurusan dengan struktur data yang kompleks, selalunya menjadi perlu untuk mengisih berdasarkan berbilang atribut. Artikel ini membincangkan persoalan mengisih senarai senarai berdasarkan berbilang kriteria.
Coretan kod yang disediakan menunjukkan senarai senarai, dengan setiap senarai dalam mewakili objek dengan pelbagai atribut. Matlamatnya ialah untuk mengisih senarai ini mengikut dua atribut: atribut "tinggi" atau "pendek" dan atribut warna.
Itemgetter ialah fungsi yang berguna untuk mengindeks berbilang atribut dalam tuple. Ia memerlukan berbilang indeks sebagai argumen dan mengembalikan fungsi yang mengekstrak atribut tersebut daripada tupel tertentu. Menggunakan itemgetter, anda boleh mencipta fungsi utama yang mempertimbangkan kedua-dua atribut "tinggi/pendek" dan atribut warna untuk mengisih:
import operator s = sorted(s, key = operator.itemgetter(1, 2))
Cara lain untuk tentukan fungsi utama untuk pengisihan ialah menggunakan fungsi lambda. Fungsi Lambda ialah fungsi tanpa nama yang boleh ditakrifkan sebaris. Fungsi lambda berikut mengembalikan tuple atribut "tinggi/pendek" dan warna:
s = sorted(s, key = lambda x: (x[1], x[2]))
Menggunakan salah satu kaedah ini, anda boleh mengisih senarai berdasarkan berbilang kriteria. Hasilnya ialah senarai senarai yang diisih mengikut atribut yang ditentukan.
Dalam coretan kod yang diberikan, diisih digunakan untuk mengembalikan senarai diisih baharu. Walau bagaimanapun, anda juga boleh mengisih senarai itu sendiri secara langsung menggunakan kaedah isihan. Ini akan mengubah suai senarai asal yang ada:
s.sort(key = operator.itemgetter(1, 2))
Dengan menggunakan fungsi itemgetter atau lambda, anda boleh menentukan fungsi utama untuk mengisih senarai mengikut berbilang atribut. Teknik ini amat berguna apabila berurusan dengan struktur data yang kompleks dan boleh memudahkan proses pengisihan.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai mengikut Pelbagai Atribut dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!