Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menyusun Senarai Dengan Cekap Berdasarkan Pelbagai Atribut dalam Python?

Bagaimanakah Saya Boleh Menyusun Senarai Dengan Cekap Berdasarkan Pelbagai Atribut dalam Python?

DDD
Lepaskan: 2024-12-11 18:02:13
asal
342 orang telah melayarinya

How Can I Efficiently Sort a List Based on Multiple Attributes in Python?

Isih Senarai Berbilang Atribut

Isih senarai berdasarkan satu atribut adalah mudah. Walau bagaimanapun, apabila berbilang atribut menentukan susunan isihan, pendekatan yang lebih kompleks diperlukan.

Pertimbangkan senarai senarai berikut:

[[12, 'tall', 'blue', 1],
[2, 'short', 'red', 9],
[4, 'tall', 'blue', 13]]
Salin selepas log masuk

Isih senarai ini semata-mata mengikut 'tinggi' atau ' atribut short' boleh dicapai menggunakan sorted(s, key = itemgetter(1)). Walau bagaimanapun, jika susunan isihan mesti berdasarkan kedua-dua atribut ketinggian dan warna, penyelesaian yang lebih cekap diperlukan.

Fungsi Utama Berbilang Atribut

Untuk mengisih senarai dengan berbilang atribut, fungsi utama boleh ditakrifkan yang mengembalikan tuple yang mewakili susunan isihan yang diingini. Sebagai contoh, fungsi kekunci berikut mengisih mengikut ketinggian dahulu dan kemudian mengikut warna:

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

Menggunakan fungsi kekunci ini, senarai boleh diisih seperti berikut:

s = sorted(s, key=key)
Salin selepas log masuk

Sebagai alternatif, itemgetter () boleh digunakan untuk mencapai hasil yang sama dengan lebih cekap:

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

Fungsi utama ini kedua-duanya lebih pantas dan tidak melibatkan Panggilan fungsi Python.

Isih Terus

Akhir sekali, pendekatan di atas boleh dipermudahkan lagi dengan menggunakan kaedah sort() dan bukannya sorted() dan menetapkan semula. Ini menghapuskan keperluan untuk mencipta senarai baharu:

s.sort(key=key)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Senarai Dengan Cekap Berdasarkan Pelbagai Atribut 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan