python 自定义排序
时间: 2023-10-14 10:31:53 浏览: 157
在Python中,我们可以通过自定义排序函数来实现对列表或字典的自定义排序。首先,如果我们想对字典按照值进行排序,可以使用sorted函数和lambda表达式来实现。例如,我们可以按照值的降序排列一个字典s:
s = {'a': 45, 'b': 44, 'c': 78, 'd': 34}
a = sorted(s.items(), key=lambda x: x, reverse=True)
print('按照value降序排序:', a)
同样地,我们也可以按照值的升序排列字典s:
a1 = sorted(s.items(), key=lambda x: x, reverse=False)
print('按照value升序排序:', a1)
如果我们想对列表按照某个元素进行排序,可以使用sort方法或sorted函数,并通过自定义排序函数来指定排序依据。例如,假设我们要对列表a进行按照元素mode 7后的升序排序,可以定义一个compare_personal函数来实现:
import functools
a = [3, 8, 14, 6, 7]
def compare_personal(x, y):
return x % 7 - y % 7
a.sort(key=functools.cmp_to_key(compare_personal))
b = sorted(a, key=functools.cmp_to_key(compare_personal))
print(a)
print(b)
这样,我们就可以得到按照元素mode 7后的升序排列的列表a和b:
[14, 7, 8, 3, 6]<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [python 自定义排序](https://blog.csdn.net/dpengwang/article/details/85839652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [一文教你搞定Python如何自定义标准排序](https://blog.csdn.net/weixin_57662182/article/details/127890324)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文