【问题标题】:python how to sort a listpython如何对列表进行排序
【发布时间】:2021-04-15 06:30:49
【问题描述】:

我必须明智地显示列表班次,例如必须先显示全天班次结果,然后是下午然后晚上 但现在它先显示下午然后显示晚上然后显示白天 这是我的代码

views.py:

    def get_queryset(self):
    getall = self.request.GET.get("getall")

    if self.request.user:
        versions = LogVersion.objects.filter(
            form__airport__id=self.request.user.aerosimple_user.airport_id
        ).exclude(status=DRAFT)
        filters = self.request.GET.get("filters")
        tags = self.request.GET.get("tags")

        logs = Log.objects.none()
        result = Log.objects.none()

        for v in versions:
            if len(v.operation_logs.order_by('-id').all())>0:
                result = result | v.operation_logs.order_by('-id').all()
                result = result.exclude(shift_name = None).exclude(shift_name='')

    # if getall:
        if getall:
            return  Log.objects.filter(
            form__form__airport__id=self.request.user.aerosimple_user.airport.id)
        if filters is not None:
            filters = filters[:-2] if filters[-2:] == ',,' else filters
            filters_list = filters.split(',,')
            for filters in filters_list:
                log = result.filter(Q(type = filters) | Q(subtype = filters))
                if filters == 'Inspection Completed':
                    log = result.filter(Q(description = filters))
                elif log != []:
                    for r in result:
                        if r.tags is not None and filters in r.tags:
                            log  =result.filter(id=r.id)
                else:
                    log = result.filter(Q(type = filters) | Q(subtype = filters))
                logs = logs | log
            return logs.all()
        return result

如何正确排序

【问题讨论】:

  • 您可以使用sorted(my_list, key=func) 方法。你必须有一些函数来详细说明它们应该如何排序。没有看到您要排序的列表,很难知道如何提供帮助

标签: python python-3.x django django-rest-framework


【解决方案1】:

例子:

logs = sorted(logs, key=lambda x: dict(day=1, afternoon=2, night=3)[x.shift])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2015-05-29
    相关资源
    最近更新 更多