Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Isih Satu Senarai Sambil Mengekalkan Susunan Asal Senarai Selari dalam Python?
Mengekalkan Kedudukan Asal Semasa Menyusun Senarai Selari
Dalam senario di mana anda mempunyai senarai selari dan keinginan untuk mengisih satu senarai sambil menyusun semula yang lain dengan cara yang disegerakkan, penyelesaian yang mantap wujud. Menggunakan pendekatan "hias, isih, nyahhias" memudahkan proses, terutamanya dengan fungsi zip terbina dalam Python.
Penyelesaian Pythonic memerlukan mencipta objek zip yang dihias, diikuti dengan mengisihnya dan akhirnya mengekstrak senarai asal daripada zip yang disusun. Teknik ini mengekalkan kedudukan asal unsur dalam kedua-dua senarai.
Sebagai contoh, diberikan senarai:
list1 = [3, 2, 4, 1, 1] list2 = ['three', 'two', 'four', 'one', 'one2']
Melaksanakan kod berikut:
list1, list2 = zip(*sorted(zip(list1, list2)))
Akan menghasilkan :
list1 = [1, 1, 2, 3, 4] list2 = ['one', 'one2', 'two', 'three', 'four']
Walau bagaimanapun, jika senarai kosong, kaedah khusus ini tidak akan berfungsi dengan betul. Mengubah suai sedikit boleh menangani isu ini:
list1, list2 = (list(t) for t in zip(*sorted(zip(list1, list2))))
Python menawarkan pendekatan pengisihan di tempat alternatif, yang, walaupun lebih bertele-tele, mungkin memberikan sedikit peningkatan prestasi untuk senarai yang lebih kecil:
tups = zip(list1, list2) tups.sort() list1, list2 = zip(*tups)
Ringkasnya, sementara beberapa pendekatan wujud untuk menyelesaikan masalah ini, kaedah zip menawarkan penyelesaian yang ringkas dan cekap yang mengekalkan kedudukan asal elemen sepanjang pengisihan proses.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Satu Senarai Sambil Mengekalkan Susunan Asal Senarai Selari dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!