Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengisih satu senarai berdasarkan nilai senarai lain dalam Python?

Bagaimana untuk mengisih satu senarai berdasarkan nilai senarai lain dalam Python?

王林
王林ke hadapan
2023-09-12 11:09:081451semak imbas

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.

Isih senarai mengikut nilai dalam senarai lain

Contoh

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)

Output

List1 = 
 ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
List2 (indexes) = 
 [2, 5, 1, 4, 3]

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']

Gunakan kamus untuk mengisih senarai mengikut nilai dalam senarai lain

Contoh

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)

Output

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam