提问人:mugesh 提问时间:8/23/2023 更新时间:8/23/2023 访问量:52
对数组中的元素求和,直到它能被 5 整除,然后在 python 中继续做同样的事情
Sum the elements in an array until its divisible by 5 and continue the same in python
问:
请帮我获取python中的逻辑 输入为 sample= [1,2,3,4,5,6,7,8,9,10] 例外输出为 结果=[15,40] 解释 检查样本中的每个元素并逐个相加,直到该值可被 5 整除(所以 1+2+3+4+5=15) 检查和添加继续(所以 6+7+8+9+10=40),因此结果在列表结果 =[15,40]
我试过了 对于示例中的 i 如果(sample[i] % 5==0): 但在条件之后,它不会继续下去
答:
0赞
Mohamad Raad
8/23/2023
#1
这将有助于:
sample = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = []
current_sum = 0
for num in sample:
current_sum += num
if num % 5 == 0:
result.append(current_sum)
current_sum = 0
if current_sum != 0:
result.append(current_sum)
print(result)
评论
0赞
Mark
8/23/2023
有了这样的列表,就会产生 .这似乎不对。sample = [1, 2, 3, 4, 5, 7, 8, 9, 10]
[15, 34]
0赞
Mohamad Raad
8/23/2023
不,这将产生[15,40]
0赞
Alain T.
8/23/2023
#2
一种方法是识别可被 5 整除的值的索引,并在它们之间的范围内使用 sum():
sample = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
idx = [i for i,n in enumerate(sample,1) if n%5 == 0]
result = [sum(sample[s:e]) for s,e in zip([0]+idx,idx)]
print(result)
[15, 40]
评论
1赞
Alain T.
8/23/2023
未知,没有提供其他示例。它确实遵循我所理解的规则。
0赞
Mark
8/23/2023
很公平...重读这个问题,我明白你的意思了。
评论