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

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

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

倚天杖 2021-07-01 10:43:25
我有一个列表,我想对列表中的所有数字求和...... 除非出现 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 到来之前不计算数字。
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

让我们像在纸上一样这样做:


找到第一个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

您可以通过组合表达式来缩短代码,但我认为在您的编程生涯的这个阶段,这对您来说更具可读性。


查看完整回答
反对 回复 2021-07-06
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

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