Нужна помочь написать код в python
Дан список чисел. Не используя функцию len определения количества элементов в этом списке и не используя цикл по коллекции, определить:
a) количество элементов в списке;
b) сумму элементов в списке;
c) значения наибольшего отношения (доли) среди элементов.
Ответы (2 шт):
Я решил с помощью обработки исключений:
def mylen(list):
tmp = 0
i = 0
while True:
try:
tmp = l[i] #пытаемся присвоить переменной tmp значение списка
i+=1
except IndexError: #если i вышло за размаеры списка - завершаем цикл
break
return i
l = [1,2,3,4]
i = mylen(l) #теперь i - кол-во элементов
print("Количество элементов равно ",i)
Длина у вас есть, дальше справитесь сами
UPD добавил нахождение суммы:
tmp = 0
sum = 0
while tmp < i:
sum += l[tmp] #просто прокручиваем список
#и прибавляем к sum его значения один за другим
tmp += 1
print("Сумма элементов равна:",sum)
Допустим есть: ar = [1,2,3,4,5]
a) Как альтернативный подход можно взять индекс последнего элемента + 1: ** ar.index(ar[-1]) + 1** где ar[-1] последний элемент списка.
b) Условием задачи не запрещено использовать встроенную функцию sum():
sum(ar)
или без неё, но с циклом:
while ar: result += ar.pop() return result
c) Специальные функции в Python вщзвращают минимальный и максимальный элементы в списке соответственно: max(ar) - min(ar)