Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyusun Senarai Senarai dengan Berbilang Atribut dalam Python dengan Cekap?

Bagaimanakah Saya Boleh Menyusun Senarai Senarai dengan Berbilang Atribut dalam Python dengan Cekap?

Barbara Streisand
Lepaskan: 2024-12-10 22:52:15
asal
205 orang telah melayarinya

How Can I Efficiently Sort a List of Lists by Multiple Attributes in Python?

Isih Berbilang Atribut dalam Senarai

Isih senarai mengikut satu atribut adalah mudah menggunakan fungsi sorted() Python dan hujah utama. Walau bagaimanapun, pengisihan mengikut berbilang atribut memberikan cabaran.

Perumusan Masalah:

Bagaimanakah kita boleh mengisih senarai senarai dengan berbilang atribut dengan cepat, seperti yang dinyatakan dalam soalan asal?

Penyelesaian:

Terdapat dua yang cekap kaedah untuk pengisihan berbilang atribut dalam senarai:

  1. Menggunakan Fungsi Lambda sebagai Kunci:

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

    Fungsi lambda ini mengambil setiap subsenarai x dan mengembalikan tuple yang mengandungi elemen kedua dan ketiga, dengan berkesan menentukan susunan isihan berdasarkan kedua-duanya atribut.

  2. **Menggunakan operator.itemgetter():

    import operator
    s = sorted(s, key = operator.itemgetter(1, 2))
    Salin selepas log masuk

    operator.itemgetter() mengembalikan fungsi yang mengekstrak elemen yang ditentukan daripada setiap subsenarai, membolehkan pengisihan berdasarkan berbilang atribut.

Dalam kedua-dua kes, susunan isihan ditentukan mengikut susunan indeks atribut yang dinyatakan dalam fungsi utama atau argumen itemgetter.

Nota Tambahan:

Untuk pengisihan di tempat, anda boleh menggunakan s.sort( ) secara langsung dengan fungsi kekunci yang sesuai:

s.sort(key = operator.itemgetter(1, 2))
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Senarai Senarai dengan Berbilang Atribut dalam Python dengan Cekap?. 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