如何只返回列表的少数值而不是返回所有值

时间:2012-09-18 13:48:22

标签: django

我有一个django列表如下: hotess1 是一个数据库结果集。

for hotel in hotels1:
            if models.CalendarDay.objects.filter(hotel=hotel, date=date).count() == 0:
                similar_venues.append(hotel)

列表大小是动态的,但我想只返回前三个值

我可以这样做:

for hotel in hotels:
        if models.CalendarDay.objects.filter(hotel=hotel, date=date).count() == 0:
            similar_venues.append(hotel)
            counter += 1
            if counter == 3: break

但我希望以更好的方式做到这一点..任何帮助

1 个答案:

答案 0 :(得分:1)

您可以使用切片运算符:my_list[:3]将返回包含my_list的前三个值的列表。

(除非少于三个值,在这种情况下,你得到所有东西)。