python list排序

今天用到了list排序,list中为dic,下面记录一下排序的方法。

第一种:sort(),sort为list内建函数,它会改变list本身。

sort()的语法为:

list.sort(cmp=None, key=None, reverse=False)
  • cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

使用方法为:

复制代码
data = [
       {
            "chinese_name": "数据中心",
            "attribute_name": "bk_data_center",
             "weight": 7
        },

        {
            "chinese_name": "分组",
            "attribute_name": "objects_classifcation",
             "weight": 3
        },
        {
            "chinese_name": "类型",
            "attribute_name": "bk_obj_id",
            "weight": 4
        }
     ]

data.sort(key=lambda x: x['weight'])
print data
==>[
        {
            "chinese_name": "分组",
            "attribute_name": "objects_classifcation",
            "weight": 3
        },
        {
            "chinese_name": "类型",
            "attribute_name": "bk_obj_id",
            "weight": 4
        },
        {
            "chinese_name": "数据中心",
            "attribute_name": "bk_data_center",
            "weight": 7
        }]
复制代码

第二种:使用python内置函数sorted排序。sorted不会改变原数组,会生成一个全新的数组。

使用方法如下:

复制代码
data = [
       {
            "chinese_name": "数据中心",
            "attribute_name": "bk_data_center",
             "weight": 7
        },

        {
            "chinese_name": "分组",
            "attribute_name": "objects_classifcation",
             "weight": 3
        },
        {
            "chinese_name": "类型",
            "attribute_name": "bk_obj_id",
            "weight": 4
        }
     ]
result = sorted(data, key=lambda x: x['weight'])
print result
==>[
        {
            "chinese_name": "分组",
            "attribute_name": "objects_classifcation",
            "weight": 3
        },
        {
            "chinese_name": "类型",
            "attribute_name": "bk_obj_id",
            "weight": 4
        },
        {
            "chinese_name": "数据中心",
            "attribute_name": "bk_data_center",
            "weight": 7
        }]
复制代码

list.sort()与sorted()的区别

1、list.sort()会改变原数组,而sorted()不会。

2、list.sort()只可对list进行排序,而sorted()可以对其他数据结构排序。

 

posted @   yingzi__block  阅读(1539)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示