Во время работы над проектом Python у меня был список различных продуктов и еще один список их количества. Мне нужно было проверить общее количество, доступное в магазине, чтобы мы могли сложить все значения, доступные в списке.
Давайте сначала разберемся в сценарии, чтобы вы могли использовать этот подход в правильной ситуации.
Предположим, это список количества продуктов.
quantity = [12, 18, 7, 5, 6]
Нам нужно получить общее количество, и оно должно дать такой результат:
Total quantity: 48
Давайте посмотрим, как мы можем выполнить добавление элементов списка без использования встроенного метода.
Используя цикл while
Сначала мы будем использовать цикл while, чтобы получить сумму значений списка в Python. Цикл while используется для выполнения блока кода несколько раз, пока заданное условие с циклом while не вернет значение False.
Итак, мы будем нацеливаться на индексные позиции значений списка одно за другим и выполнять сложение.
Синтаксис:
while :
- while : мы также можем задать несколько условий в цикле while с помощью логических операторов (и/или).
Давайте разберемся, как суммировать список в Python без функции суммы, но используя цикл while.
quantity = [12, 18, 7, 5, 6] sum = 0 i = 0 while i < len(quantity): sum += quantity[i] i+=1 print("Total Quantity:",sum)
В приведенном выше коде у нас есть список количеств, и нам нужно найти общее количество. Итак, во-первых, мы инициализировали сумму = 0, где будем хранить окончательный результат. Затем мы инициализировали i = 0, которое будет использоваться для выбора элементов списка по их индексным позициям.
Затем мы использовали цикл while и задали такое условие: while I < len(quantity). Итак, итерация будет продолжаться до тех пор, пока я не станет равна длине списка.
Наконец, мы выполняем сложение следующим образом: sum += количество[i]. Здесь мы используем оператор присваивания (+ =), что также означает сумму = сумма + количество[i]. Здесь количество [i] будет ориентироваться на значения по номеру индекса.
С помощью цикла For
Мы также можем использовать цикл for, чтобы получить сумму чисел в списке.
Этот подход предпочтительнее, поскольку он может напрямую ориентироваться на элементы списка, и нет необходимости использовать поддержку позиции индекса для доступа к элементу списка.
Цикл For будет повторяться до последнего элемента списка.
Синтаксис:
for var_name in collection:
- для var_name в коллекции: этот синтаксис будет полезен, когда вам нужно напрямую указать значения.
Давайте посмотрим, как суммировать список в Python без функции sum, но используя цикл for.
weights = [56, 45, 67, 32, 81] sum = 0 for i in weights: sum += i print("Total Weight Inside Lift: ",sum)
В приведенном выше коде у нас есть список весов, и нам нужно проверить общее количество элементов списка. Итак, мы используем такой цикл for: «для i в весах», который может напрямую нацеливаться на элементы списка.
Затем он выполнит сложение с переменной sum «sum += i», используя оператор присваивания(+=).
С использованием рекурсии
В Python рекурсия — это концепция, в которой функция многократно вызывает сама себя, пока не достигнет базового условия.
Давайте посмотрим, как мы можем использовать рекурсию для получения суммы списка в Python без использования функции суммы.
def sum_list(collection): if len(collection) == 1: return collection[0] else: return collection[0] + sum_list(collection[1:]) list1 = [1, 2, 3, 4, 5] print("The sum of the list elements is:", sum_list(list1))
В приведенном выше коде мы создали функцию def sum_list (collection), которой передадим список в качестве параметра. Затем мы создали базовое условие if len (collection) == 1, поэтому, когда это условие возвращает True, оно останавливает поток выполнения и возвращает коллекцию[0].
Если базовое условие не удовлетворено, оно перейдет в блок операторов else и вернет коллекцию[0] + sum_list(коллекция[1:]). Здесь вы можете видеть, что функция sum_list() вызывает саму себя, уменьшая длину параметра.
Когда длина списка станет равной 1, вызов функции прекратится.