如何总结列表中 2 个数字的减法?

问题描述

您会收到一份清单,显示每次发生变化时,商店里有多少人会添加到列表中。例如 - 一开始有 0 人,然后 2 人进来,所以商店里有 2 个人,当 2 人进来时是 4 人,但是当 3 人离开时是 1 人,当另外 2 人进来时又是 3 人。所以输入列表看起来像 0 2 4 1 3。您必须编写一个程序来计算进入商店的总人数,在本例中为 6。

a=[int(i)for i in input().split()]
for i in range (1,len(a)):
    if a[i] > a[i-1]:
        b = a[i] - a[i-1]

据我所知。如果数字大于前一个,我就减去,现在我必须总结所有的减法。我该怎么做?

解决方法

创建一个 total 变量。在计算 a[0] 时从 b 开始添加。

a = [int(i) for i in input().split()]
total = a[0]
for i in range(1,len(a)):
    if a[i] > a[i-1]:
        b = a[i] - a[i-1]
        total += b
,

从逻辑上讲,您应该添加所有成对差异。

a = [0] + [int(i) for i in input().split()]

total = sum(max(0,y-x) for x,y in zip(a,a[1:]))

前面的额外0会在开始时商店有人的情况下进行处理。