附加(变量)插入错误的值,我不知所措

append(variable) inserts wrong value, i am at loss

def primesFaster(to_number):
array = [x for x in range(2, to_number + 1)]
result = list()
i = array[0]
while(i*i < to_number):
    result.append(array[i])      #<<----- i = 2 in debugger but still appends 4
    for x in array:
        if(x%i == 0): array.remove(x)
    i = array[0]
result.extend(array)
return result

--

 result.append(array[i])

应该将 2,3,5... 值追加到结果数组,但由于某种原因它在第一次循环迭代中追加 4 这怎么可能发生?请帮助我

因为array[0]是2而array[2]是4.

array = [x for x in range(2, to_number + 1)]  # [2, 3, 4, ..., to_number]

你基本上叫

result.append(array[array[0]])