繁体   English   中英

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

[英]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_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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM