Как использовать цикл 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 
Вернуться на верх