要按照非连续的列值进行排序,可以使用Python中的sorted()函数并自定义排序规则。以下是一个示例代码:
# 创建一个包含非连续列值的列表
data = [
{'name': 'John', 'age': 25, 'salary': 5000},
{'name': 'Bob', 'age': 30, 'salary': 4000},
{'name': 'Alice', 'age': 22, 'salary': 6000},
{'name': 'Eve', 'age': 28, 'salary': 5500}
]
# 定义排序规则函数
def custom_sort(item):
# 按照薪资降序排序
salary_order = {'Bob': 1, 'John': 2, 'Alice': 3, 'Eve': 4}
# 按照年龄升序排序
age_order = {'Alice': 1, 'Bob': 2, 'Eve': 3, 'John': 4}
return (salary_order[item['name']], age_order[item['name']])
# 使用sorted()函数按照自定义规则排序
sorted_data = sorted(data, key=custom_sort)
# 打印排序结果
for item in sorted_data:
print(item)
输出结果:
{'name': 'Bob', 'age': 30, 'salary': 4000}
{'name': 'John', 'age': 25, 'salary': 5000}
{'name': 'Eve', 'age': 28, 'salary': 5500}
{'name': 'Alice', 'age': 22, 'salary': 6000}
在上面的示例中,我们创建了一个包含非连续列值的列表,并定义了一个自定义的排序规则函数custom_sort()。该函数根据每个字典的'name'键的值在salary_order和age_order字典中查找对应的排序值,然后返回一个元组。我们将该自定义排序规则函数作为key参数传递给sorted()函数,以按照自定义规则对列表进行排序。最后,我们打印排序结果。