为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得连续数字的总和?

如何获得连续数字的总和?

芜湖不芜 2022-03-09 20:52:35
如果给你一个列表,其值为[1,2,2,4,4,0]. 您需要创建一个函数,该函数采用整数列表(正/负)并返回连续重复的数字的总和。我们需要以列表格式返回结果。上述列表的答案是 [1,4,8,0]。我曾尝试在 for 循环中创建一个 while 循环,但完全失败了。我完全被困住了。def sum_consecutives(lst):    n_list = []    total = 0    count = 0for i in range(0,len(lst)):    print(sum_consecutives([0, 7, 7, 7, 5, 4, 9, 9, 0]))这个函数应该输出[0,21,5,4,18,0].
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

分组,然后求和。


>>> from itertools import groupby

>>> [sum(vs) for _, vs in groupby([1,2,2,4,4,0])]

[1, 4, 8, 0]

>>> [sum(vs) for _, vs in groupby([0, 7, 7, 7, 5, 4, 9, 9, 0])]

[0, 21, 5, 4, 18, 0]

group收集相等值的序列,因此groupby([1,2,2,4,4,0])返回类似[(1,[1]), (2, [2,2]), (4, [4,4]), (0, [0])]. (而不是相等项的列表,它为您提供迭代器,但更容易可视化它在具体列表中所做的事情。)


查看完整回答
反对 回复 2022-03-09
  • 1 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信