Как использовать цикл for внутри map python
У меня есть функция, которая возвращает список чисел. Но я знаю, что в других языках, например в JS, нам не нужно задавать переменную типа c = 0
. Я видел о map в python, но не знаю, как это сделать.
Вот моя функция:
def get_bought_passenger_count(self):
c = 0
for book in self.bookings.all():
c += book.passenger_count
return c
Я хочу сделать это с помощью функции map
Я не думаю, что это необходимо.
вы просто постоянно добавляете термины, поэтому это просто sum
и не требует использования функции map()
, вы можете использовать встроенную функцию sum()
, а также генератор:
def get_bought_passengers(self):
return sum(book.passenger_count for book in self.bookings.all())
как сказал @Lecdi в комментариях.
Вы можете использовать sum вместе с осмыслением списка
def get_bought_passengers(self):
return sum([book.passenger_count for book in self.bookings.all()])
если вы хотите получить количество объектов в кверисете, вы можете использовать count()
Функцию...
MyModel.objects.all().count() # return the Number of Objects in the Queryset
# count is faster than sum