猿问

遍历列表直到满足 2 个条件

我有一个列表,我想对列表中的所有数字求和...... 除非出现 6 - 不计算 6 中的任何数字,直到下一个 7 出现(也不计算 7 )。7 总是会出现在 6 之后的某个地方。


例如:


my_list = [1,2,3,6,1,1,1,7,2,2,2]

           1,2,3,.........,2,2,2    # Omit numbers from the first 6 to the next 7.

应该输出12。


我知道如何识别 6,我只是不确定如何在后续 7 到来之前不计算数字。


倚天杖
浏览 146回答 2
2回答

慕标5832272

让我们像在纸上一样这样做:找到第一个6;将列表标记到该点。在列表的其余部分,找到前 7 个;在该点之后标记列表。合并两个标记的列表部分;总结这些元素。代码,带有一行跟踪输出:seq = [1, 2, 3, 6, 1, 1, 1, 7, 2, 2, 2]first6 = seq.index(6)rest = seq[first6:]next7 = rest.index(7)sum_list = seq[:first6] + rest[next7+1:]print("Add these:", sum_list)print("Sum:", sum(sum_list))输出:Add these: [1, 2, 3, 2, 2, 2]Sum: 12您可以通过组合表达式来缩短代码,但我认为在您的编程生涯的这个阶段,这对您来说更具可读性。
随时随地看视频慕课网APP

相关分类

Python
我要回答