Форум сайта python.su
Здравствуйте господа программисты. Помогите решить задачку, как правильно записать условие.
Офлайн
>>> 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] >>>
Офлайн
Спасибо. Ответ нашел. если интересно то:
rst = (2,4,6,2,10) sum1 = [] i = 0 while i<len(rst)+2: sum1.append(sum(rst[:i])) i+=2 print(sum1)
Офлайн
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] >>>
Отредактировано py.user.next (Апрель 21, 2024 11:28:05)
Офлайн
Это координаты сдвига элементов. 0 это 1-ый елемент
Офлайн