目的:
要从列表中获取整数的总和,除了忽略以6开头并扩展到下一个9的数字部分(每6个字符后至少跟9个数字)。没有数字则返回0。
输入主清单
a=[4, 5, 6, 7, 9,2, 6,8,9]
到目前为止我的代码
z6_ind=[]
z9_ind=[]
z69_ind=[]
x=None
for i,v in enumerate(a):
if v==6:
z6_ind.append(i)
if v==9:
z9_ind.append(i)
print(z6_ind. z9_ind)
我的想法是根据单独的列表获取主列表的索引(例如z6_ind,z9_ind,最后是有问题的z69_ind,其中应包含应以[[2,4],[6,8]]表示的范围在进行总和计算时从主清单中排除。
在上面的脚本中,它给出的z9_ind等于[4,8],而z6_ind等于[2,6]。
谢谢 !
最佳答案
我不确定是否正确捕获了它,但是您是否需要此代码?
a = [4, 5, 6, 7, 9, 2, 6, 8, 9]
sigma = 0
exc_ind = []
flag = False
for ind, item in enumerate(a):
if item == 6 and not flag:
flag = True
exc_ind.append([])
exc_ind[-1].append(ind)
elif item == 9 and flag:
exc_ind[-1].append(ind)
flag = False
elif not flag:
sigma += item
print(sigma)
print(exc_ind)
结果:
11
[[2, 4], [6, 8]]
关于python - 从列表中获得特定值的范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51601393/