[英]How to get the specific index from sum of the list over this IF-condition?
我想将每个索引的值向后求和,直到它到达“上限”并从最后一个值中获取一个索引并使用迭代索引 x 打印它(实际上,x 应该从 1 开始)
total = 0
cap = 30
myArray = [1,2,3,4,5,6,7,8,9,10]
myArray.reverse()
for x in range(len(myArray)):
total = total + myArray[x]
if total >= cap:
print(x,total)
break
无需reverse()
,您可以向后迭代:(我在条件内移动了break
)
total = 0
cap = 30
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for x in range(len(myArray) - 1, - 1, -1):
total += myArray[x]
if total >= cap:
print(x, total)
break
Output: 6 34
如另一个答案所示,它是break
的缩进。
这是使用enumerate
和reverse
的替代方法:
total = 0
cap = 30
myArray = [1,2,3,4,5,6,7,8,9,10]
for idx, val in enumerate(reversed(myArray)):
total += val
if total >= cap:
print(idx, total)
break
在第二次阅读时,我不确定你想要什么索引。 数组 position 或 for 循环中的迭代次数?
为了回答您的问题,您将break
放在if
条件之外,
total = 0
cap = 30
myArray = [1,2,3,4,5,6,7,8,9,10]
myArray.reverse()
for x in range(len(myArray)):
total = total + myArray[x]
if total >= cap:
print(x,total)
break
Output:
3 34
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.