如何在python 让列表 按另一列表当索引值 进行排序
时间: 2024-04-08 16:33:17 浏览: 223
python可包含重复值的列表排序算法,对输入列表进行按规则排序,输出新列表和排序数据的原索引
在 Python 中,你可以使用 `zip` 函数将两个列表打包成一个元组列表,然后使用 `sorted` 函数和自定义的比较函数来按照另一个列表的索引值进行排序。以下是一个示例代码:
```python
def sort_by_index(list1, list2):
zipped = zip(list2, list1) # 将两个列表打包成元组列表
sorted_list = sorted(zipped, key=lambda x: x[0]) # 按照第一个元素(list2中的值)进行排序
result = [x[1] for x in sorted_list] # 提取排序后的列表中的第二个元素(list1中的值)
return result
# 示例数据
list1 = ['a', 'b', 'c', 'd']
list2 = [2, 0, 3, 1]
# 调用函数进行排序
sorted_list = sort_by_index(list1, list2)
print(sorted_list)
```
运行以上代码,输出结果为:`['b', 'd', 'a', 'c']`。在这个例子中,`list2` 的值 `[2, 0, 3, 1]` 指定了 `list1` 的索引顺序,所以按照 `list2` 中的值对 `list1` 进行了排序。你可以根据自己的需求调整这段代码,适应不同的列表和排序方式。
阅读全文