我有一个列表,求和相似的数字

I have an list, sum the similar number

list = [1,1,4,4,4,0,1]
    new_list = []
    sum_ = 0
    for number in list:
        if number == number+1:
            sum_ += number
        else: 
            sum_ += number
            new_list.append(sum_)
print(new_list)

输出 => [1, 2, 6, 10, 14, 14, 15]

预期 => [2, 12, 0, 1]

检查此代码:

my_list = [1,1,4,4,4,0,1]
my_sum = my_list[0]
my_results = []
    
for i in range(1, len(my_list)):
    if my_list[i] == my_list[i-1]:
        my_sum += my_list[i]
    else:
        my_results.append(my_sum)
        my_sum = my_list[i]
else:
    my_results.append(my_sum)

我首先将 my_sum 初始化为列表的第一个元素,然后扫描列表的其余元素,始终比较相邻元素是否相等。如果它们相等,my_sum 我们更新,如果它们不相等 my_sum 首先存储到输出列表 my_results 然后重新初始化为原始列表中的新数字。

代码计算连续相同数字的数量,并将这些数字乘以它们的数量

numbers = [1, 1, 4, 4, 4, 0, 1]
hook, cnt, out = numbers[0], 0, []
for i in numbers:
    if i == hook:
        cnt += 1
    else:
        out.append(hook * cnt)
        hook, cnt = i, 1
out.append(hook * cnt)
print(out)  # [2, 12, 0, 1]