如何在Python中使用另一个列表的值对一个列表进行排序? |
您所在的位置:网站首页 › python循环赋值给另一个列表 › 如何在Python中使用另一个列表的值对一个列表进行排序? |
如何在Python中使用另一个列表的值对一个列表进行排序?
我们可以通过将第二个列表设置为按排序顺序排列的第一个列表中的值的索引号来按另一个列表的值对列表进行排序。 使用另一个列表的值对列表进行排序 示例在本例中,我们将通过另一个列表的值对列表进行排序,即第二个列表将按照它们在排序顺序中放置的顺序具有索引号。 # 两个列表 list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai'] list2 = [2, 5, 1, 4, 3] print("List1 = \n",list1) print("List2 (indexes) = \n",list2) # 基于List2排序List1 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的字典的键值来排序。 # 两个列表 list1 = ['宝马', '丰田', '奥迪', '特斯拉', '现代'] list2 = [2, 5, 1, 4, 3] print("列表1 = \n",list1) print("列表2 (索引) = \n",list2) # 空字典 newDict = {} # 空列表 outList = [] # 将两个列表放入字典 newDict newDict = {list1[i]: list2[i] for i in range(len(list2))} # 基于键和值使用 sorting() 排序 # 也可以使用 lambda s = {k: v for k, v in sorted(newDict.items(), key=lambda item: item[1])} # 向列表添加元素 for i in s.keys(): outList.append(i) print("\n排序后的列表 = \n",outList) 输出 列表1 = ['宝马', '丰田', '奥迪', '特斯拉', '现代'] 列表2 (索引) = [2, 5, 1, 4, 3] 排序后的列表 = ['奥迪', '宝马', '现代', '特斯拉', '丰田'] |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |