Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyusun Tuple Python dengan Cekap mengikut Elemen Kedua Integernya?
Apabila bekerja dengan senarai tupel yang mengandungi kedua-dua rentetan dan elemen integer, mengisihnya dengan cekap berdasarkan nilai integer boleh menjadi penting. Artikel ini membincangkan penyelesaian untuk tugas pengaturcaraan biasa ini.
Untuk mengisih senarai tupel mengikut item kedua mereka, iaitu integer, kita boleh menggunakan fungsi sorted() dalam Python. Fungsi ini membenarkan penyesuaian kriteria pengisihan menggunakan argumen kata kunci utama.
Argumen utama mengambil fungsi sebagai input, yang menentukan cara tupel harus dibandingkan. Dalam kes ini, kami ingin membandingkannya berdasarkan elemen kedua mereka. Kita boleh mentakrifkan fungsi tersuai menggunakan sintaks lambda seperti berikut:
lambda x: x[1]
Fungsi ini mengambil satu tuple sebagai input dan mengembalikan elemen keduanya.
Sekarang, kita boleh menggunakan hujah utama dalam sorted() untuk menentukan fungsi tersuai ini sebagai pengisihan peraturan:
sorted([('abc', 121), ('abc', 231), ('abc', 148), ('abc', 221)], key=lambda x: x[1])
Ini akan mengembalikan senarai baharu yang mengandungi tupel yang diisih dalam tertib menaik mengikut elemen kedua:
[('abc', 121), ('abc', 148), ('abc', 221), ('abc', 231)]
Untuk prestasi optimum, pertimbangkan untuk menggunakan operator.itemgetter(1) dan bukannya lambda x: x[1]. Operator.itemgetter ialah fungsi terbina dalam yang direka secara eksplisit untuk mengekstrak elemen yang ditentukan daripada struktur data, yang boleh meningkatkan kecekapan.
from operator import itemgetter sorted([('abc', 121), ('abc', 231), ('abc', 148), ('abc', 221)], key=itemgetter(1))
Pendekatan ini mencapai hasil yang sama seperti menggunakan fungsi lambda tetapi mungkin sedikit lebih pantas dalam sesetengah kes.
Atas ialah kandungan terperinci Bagaimana untuk Menyusun Tuple Python dengan Cekap mengikut Elemen Kedua Integernya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!