目的:
要从列表中获取整数的总和,除了忽略以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/

10-12 22:10