Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengisih Pelbagai Senarai dalam Python Semasa Mengekalkan Penjajaran?
Apabila bekerja dengan berbilang senarai selari, anda mungkin perlu mengisih satu senarai sambil mengekalkan susunan unsur yang sepadan dalam senarai lain. Untuk mencapai matlamat ini, kami mempersembahkan dua pendekatan klasik.
Teknik ini memudahkan tugas menggunakan fungsi zip terbina dalam Python, yang menggabungkan elemen daripada berbilang senarai menjadi tupel:
list1 = [3, 2, 4, 1, 1] list2 = ['three', 'two', 'four', 'one', 'one2'] list1, list2 = zip(*sorted(zip(list1, list2)))
Selepas mengisih tupel mengikut elemen pertama (senarai1), susunan digunakan pada kedua-dua senarai.
Untuk meningkatkan kelajuan, anda boleh menggunakan pendekatan pengisihan di tempat:
tups = zip(list1, list2) tups.sort() result1, result2 = zip(*tups)
Pendekatan ini biasanya mengatasi prestasi versi satu baris untuk senarai kecil tetapi menjadi setanding untuk senarai yang lebih besar kerana zip yang dioptimumkan Python rutin.
list1 = [3, 2, 4, 1, 1] list2 = [num * num for num in list1] result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Pelbagai Senarai dalam Python Semasa Mengekalkan Penjajaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!