卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章1829本站已运行4109

如何在Python中根据另一个列表的值对一个列表进行排序?

如何在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']
卓越飞翔博客
上一篇: 掌握PHP8的新特性:如何使用Nullable和代码更好地处理空值情况?
下一篇: 构建强大功能:PHP 异步 HTTP 下载多个文件的开发指南
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏