首页 > 解决方案 > append(variable) 插入错误的值,我不知所措

问题描述

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 怎么会发生?请帮我

标签: pythonappend

解决方案


因为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]])

推荐阅读