python3.x列表赋值索引超出范围

时间:2015-03-14 14:54:26

标签: python python-3.x

log:IndexError:列表分配索引超出范围

我无法修复.list分配索引超出范围。你能救我吗?


  j=1
    n=int(input())
    flag=[]*29
    a=[]*29
    for i in range(len(a)):
        a[i]=1.0/(i+2)
    for j in range(2**29):
        temp=j
        index=0
        sum=0
        while temp>0 and index<29:
            flag[index]=temp%2
            index=index+1
            sum+=(temp%2)*a[index]
            temp=temp/2
    if sum==1:
        count=0
        index=index+1
        for i in range(index):
            if flag[i]==1:
                count+=1
        if count==n:
            for i in range(len(flag)):
                if flag[i]!=0:
                    print(flag[i]+"/"+(i+2)+"")

1 个答案:

答案 0 :(得分:0)

不确定这段代码应该做什么,但我建议你像这样初始化你的列表:

N = 29
flag = [None] * N
a = [1.0 / (i + 2) for i in range(N)]

如果您只是[] * 29,则列表仍为空,就像29 * 0仍为0一样。

之后似乎有更多的错误,但不知道代码应该做什么,也无法建议如何修复它。