美文网首页
python万能排序法(可迭代对象自定义按值排序)

python万能排序法(可迭代对象自定义按值排序)

作者: de650ed0ad7e | 来源:发表于2019-02-27 10:10 被阅读0次

    对于列表中嵌套的字典的值进行排序(使用sorted和lambda)


    image.png
            dp_sns = []
            for passage in passage_queryset:
                print(passage.di_id.di_device_location.lab_name)
                if passage.di_id.di_tempperature and project_obj.device_range:
                    if str(int(passage.di_id.di_tempperature)) =project_obj.bt_project_id.item_name[:2] and passage.di_id.di_range.id == int(project_obj.device_range) and passage.dp_status == 0:
                        passage_dict = {}
                        passage_dict["dp_sn"] = passage.dp_sn   # 符合条件的通道sn
                        passage_dict["id"] = passage.id   # 通道id
                        passage_dict["lab_name"] = passage.di_id.di_device_location.lab_name   
                        dp_sns.append(passage_dict)
    
            sorted_dp_sns = sorted(dp_sns, key=lambda dp: dp['dp_sn'])
    

    对于查询集亦可,由此可见sorted函数实现了遍历,可以直接使用遍历的对象.外键取值,此处是将要排序的值重新组合成键值对的键,按值重新自定义排序


    image.png
            order_map = {'C9': 1, 'E12': 2, 'B6': 3}
            passage_queryset1 = DevicePassage.objects.all()
            passage_queryset = sorted(passage_queryset1,
                                       key= lambda x:order_map[x.di_id.di_device_location.lab_name])
    

    [用sorted和lambda匿名函数实现多字段排序](https://blog.csdn.net/weihongrao/article/details/16877595

    相关文章

      网友评论

          本文标题:python万能排序法(可迭代对象自定义按值排序)

          本文链接:https://www.haomeiwen.com/subject/dtlxuqtx.html