列表推导和过滤

2024-04-26 02:50:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django有一个模型,一个人每打一场就有1-6轮的结果。我试着把他所有的打斗都找出来,然后按轮排序。但是,有些回合被跳过:

results = self.objects.filter(boxer)
fight_results = []
for r in results:
   result = sorted([x for x in results if x.fight_id == r.fight_id],key=lambda r: -r.round)
   fight_results.append(result)

我做错什么了?你知道吗

编辑:只是澄清一下,对于每一场比赛,数据库中有1到6个条目具有相同的比赛id,但轮数不同。我只是想把它们全部取出来,加入一个列表,然后按整数排序


Tags: djangoin模型selfidforifobjects
1条回答
网友
1楼 · 发布于 2024-04-26 02:50:43

如果不知道fightsrounds的类/数据结构,就很难理解您要做什么。根据您的描述,在我看来,正在排序的列表理解错误地使用了results。查看传递给tpsorted的密钥,它应该引用特定结果中的冲突,因此应该类似于:

result = sorted([x for x in r.fights if x.fight_id == r.fight_id],key=lambda r: -r.round)

相关问题 更多 >