以下是一个示例代码,展示如何根据另一个列表对一个列表进行排序:
# 要排序的列表
lst = [4, 3, 2, 1]
# 另一个列表作为排序依据
order = ['d', 'c', 'b', 'a']
# 使用zip将两个列表合并为一个元组列表
combined = zip(order, lst)
# 根据order列表的顺序对combined进行排序
sorted_combined = sorted(combined)
# 解压缩排序后的元组列表
sorted_order, sorted_lst = zip(*sorted_combined)
# 输出排序后的列表
print(sorted_lst) # 输出: (1, 2, 3, 4)
在上面的示例中,我们首先将要排序的列表 lst
和排序依据的另一个列表 order
使用 zip
函数合并为一个元组列表 combined
。然后,我们使用 sorted
函数对 combined
进行排序,这将根据 order
列表的顺序进行排序。最后,我们使用解压缩操作将排序后的元组列表 sorted_combined
拆分为排序后的 sorted_order
和 sorted_lst
列表。最终,我们输出排序后的列表 sorted_lst
。
请注意,上述代码假设 lst
和 order
列表长度相同且元素一一对应。如果两个列表的长度不相同,或者两个列表中的元素不能一一对应,可能会导致排序结果出错。