Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengisih satu senarai berdasarkan nilai senarai lain dalam Python?
Kita boleh mengisih senarai mengikut nilai dalam senarai lain dengan menetapkan senarai kedua kepada nombor indeks nilai dalam senarai pertama dalam susunan disusun.
Dalam contoh ini kita akan mengisih senarai berdasarkan nilai dalam senarai lain iaitu indeks senarai kedua akan mengikut susunan yang diletakkan dalam susunan yang diisih -
# Two Lists list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai'] list2 = [2, 5, 1, 4, 3] print("List1 = \n",list1) print("List2 (indexes) = \n",list2) # Sorting the List1 based on List2 res = [val for (_, val) in sorted(zip(list2, list1), key=lambda x: x[0])] print("\nSorted List = ",res)
List1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai'] List2 (indexes) = [2, 5, 1, 4, 3] Sorted List = ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Dalam contoh ini, kami akan mengisih satu senarai mengikut nilai senarai lain. Kami menambah dua senarai ini pada kamus dan kemudian mengisihnya menggunakan nilai utama dan lambda dalam kamus.
# Two Lists list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai'] list2 = [2, 5, 1, 4, 3] print("List1 = \n",list1) print("List2 (indexes) = \n",list2) # Blank dictionary newDict = {} # Blank list outList = [] # Both the lists in our dictionary newDict newDict = {list1[i]: list2[i] for i in range(len(list2))} # Sorting using the sorting() based on key and values # Using lambda as well s = {k: v for k, v in sorted(newDict.items(), key=lambda item: item[1])} # Element addition in the list for i in s.keys(): outList.append(i) print("\nSorted List = \n",outList)
List1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai'] List2 (indexes) = [2, 5, 1, 4, 3] Sorted List = ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Atas ialah kandungan terperinci Bagaimana untuk mengisih satu senarai berdasarkan nilai senarai lain dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!