python中自定义sort 规则
发布日期:2025-05-12 10:45:43 浏览次数:2 分类:精选文章

本文共 1128 字,大约阅读时间需要 3 分钟。

数据准备与统计分析

数据结构

list_test = [
[[1, 2, 3], [4, 5, 6]],
[[1, 3, 4], [7, 8, 9], [1, 3, 3]]
]

统计结果

result = [x for i in list_test for j in i for x in j]
# 输出结果:[1, 2, 3, 4, 5, 6, 1, 3, 4, 7, 8, 9, 1, 3, 3]

使用Counter进行统计

from collections import Counter
counter_result = Counter(result)
# 输出结果:Counter({1: 3, 2: 1, 3: 4, 4: 2, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1})

items()方法转换

# 将Counter转换为元祖结构
counter_result.items()
# 输出结果:[(1, 3), (2, 1), (3, 4), (4, 2), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1)]

判断类型

print('是否是可迭代对象\n', isinstance(counter_result.items(), Iterable))
# print('type\n', type(counter_result.items()))
# 输出结果:是否是可迭代对象 True
# (1, 3), (2, 1), (3, 4), (4, 2), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1)

自定义排序

# 按照值降序排序
sorted(counter_result.items(), key=lambda x: x[1], reverse=True)
# 输出结果:[(3, 4), (1, 3), (4, 2), (2, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1)]

按值升序排序

sorted(counter_result.items(), key=lambda x: x[1])
# 输出结果:[(2, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (4, 2), (1, 3), (3, 4)]

分析

通过对Counter.items()进行排序,可以根据值的大小来重新排列数据,方便后续的分析和展示。默认情况下,sorted函数会按照指定的关键函数(这里是x[1])进行升序排列。如果需要降序排列,可以通过设置reverse=True来实现。

上一篇:python中自定义错误_在现代Python中声明自定义异常的正确方法?
下一篇:Python中类的约束

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月14日 17时45分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章