如何在Python中根據另一個列表的值對一個列表進行排序?

王林
發布: 2023-09-12 11:09:08
轉載
1463 人瀏覽過

如何在Python中根據另一個列表的值對一個列表進行排序?

我們可以按另一個清單中的值對清單進行排序,方法是將第二個清單設定為按排序順序排列的第一個清單中的值的索引號。

以另一個清單中的值對清單進行排序

#範例

在此範例中,我們將根據另一個清單中的值對清單進行排序,即第二個清單的索引將按照它們按排序順序放置的順序排列 -

# 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']
登入後複製

使用字典依另一個清單中的值對清單進行排序

範例

在此範例中,我們將按另一個清單的值對一個清單進行排序。我們將這兩個清單加入字典中,然後使用字典中的鍵值和 lambda 進行排序。

# 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']
登入後複製

以上是如何在Python中根據另一個列表的值對一個列表進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板