以下是一个示例代码,演示如何按照特定顺序对一个名字数组进行排序:
def sort_names(names, order):
# 构建一个字典,将名字与它们在order列表中的索引关联起来
order_dict = {name: index for index, name in enumerate(order)}
# 使用自定义的排序函数,根据名字在order_dict中的索引进行排序
def custom_sort(name):
return order_dict.get(name, float('inf'))
# 对名字数组进行排序
sorted_names = sorted(names, key=custom_sort)
return sorted_names
# 示例用法
names = ['Tom', 'Jerry', 'Alice', 'Bob', 'David']
order = ['David', 'Alice', 'Tom', 'Jerry', 'Bob']
sorted_names = sort_names(names, order)
print(sorted_names)
输出结果为:
['David', 'Alice', 'Tom', 'Jerry', 'Bob']
在这个示例中,我们首先将order列表中的名字与它们在列表中的顺序建立起了一个字典order_dict。然后,我们定义了一个自定义的排序函数custom_sort,它通过查找名字在order_dict中的索引来确定名字的排序顺序。
最后,我们使用内置的sorted函数来对名字数组进行排序,通过传递custom_sort函数作为key参数来指定排序的方式。排序结果符合order列表中的顺序。
上一篇:按特定顺序对列值求和