可以使用Python中的sorted函数对数组进行排序,并通过lambda函数设置多个排序条件。具有优先字段的项可以通过一个单独的lambda函数放置于排序列表的最前面。
示例代码如下:
# 待排序的数组
arr = [
{'name': 'apple', 'price': 2.0, 'quantity': 10, 'priority': True},
{'name': 'banana', 'price': 1.5, 'quantity': 20, 'priority': False},
{'name': 'pear', 'price': 3.0, 'quantity': 5, 'priority': True},
{'name': 'orange', 'price': 2.5, 'quantity': 15, 'priority': True},
{'name': 'peach', 'price': 2.5, 'quantity': 8, 'priority': False},
{'name': 'grape', 'price': 2.0, 'quantity': 12, 'priority': False}
]
# 使用sorted函数进行排序
sorted_arr = sorted(arr, key=lambda x: (not x['priority'], x['name'], x['price'], x['quantity']))
# 输出排序结果
for item in sorted_arr:
print(item)
输出结果如下:
{'name': 'apple', 'price': 2.0, 'quantity': 10, 'priority': True}
{'name': 'orange', 'price': 2.5, 'quantity': 15, 'priority': True}
{'name': 'pear', 'price': 3.0, 'quantity': 5, 'priority': True}
{'name': 'banana', 'price': 1.5, 'quantity': 20, 'priority': False}
{'name': 'grape', 'price': 2.0, 'quantity': 12, 'priority': False}
{'name': 'peach', 'price': 2.5, 'quantity': 8, 'priority': False}
可以看到,具有优先字段的项被放置在了排序列表的最前面。