Найти - Пользователи
Полная версия: Сумма чисел в последовательности по парно
Начало » Центр помощи » Сумма чисел в последовательности по парно
1
vitz
Здравствуйте господа программисты. Помогите решить задачку, как правильно записать условие.
rst = list(2,4,3,2,5,5,2)
out = [sum(rst) for i in range(1,len(rst)-1)]# сложение со следующим числом
ответ:
print(6,12,14,19)
надо получить:
(6),(6+3+2),(11+5+5),(21+2)
Заранее Спасибо за понимание.
py.user.next
  
>>> def f(seq):
...     out = []
...     it = iter(seq)
...     c = 0
...     while True:
...         a = next(it, None)
...         if a is None:
...             break
...         b = next(it, 0)
...         c += a + b
...         out.append(c)
...     return out
... 
>>> lst = [2, 4, 3, 2, 5, 5, 2]
>>> 
>>> f(lst)
[6, 11, 21, 23]
>>>
vitz
Спасибо. Ответ нашел. если интересно то:
 rst = (2,4,6,2,10)
sum1 = []
i = 0
while i<len(rst)+2:
   sum1.append(sum(rst[:i]))
   i+=2
print(sum1)
py.user.next
vitz
Ответ нашел. если интересно то:
vitz
  
sum1.append(sum(rst[:i]))
Ну такое, это на вид оно короткое, а по сути что? Оно пересчитывает то, что уже считало. Если там миллион элементов будет, оно будет сотни тысяч элементов считать, а потом их пересчитывать снова.

Да и ноль тут в начале
  
>>> rst = (2,4,6,2,10)
>>> sum1 = []
>>> i = 0
>>> while i<len(rst)+2:
...    sum1.append(sum(rst[:i]))
...    i+=2
... 
>>> print(sum1)
[0, 6, 14, 24]
>>>
Ноль-то не нужен.
vitz
Это координаты сдвига элементов. 0 это 1-ый елемент
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB