python - 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 怎么会发生?请帮我
解决方案
因为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]])
推荐阅读
- amazon-web-services - 尝试在 aws cloudformation CLI 中提示参数字段时出现问题
- download - youtube-dl 如何获取字幕文件名?
- macos - macOS High Sierra - 为什么使用 Firefox 或 Safari 只能找到或浏览此 SVG 中的某些字符(使用 CTRL+F 搜索)?
- python - Django - 检查一个非外键整数字段是否作为另一个模型的主键存在?
- java - 如何将通过 TCP 发送数据的数据从 C++ 转换为 Java
- regex - 在 Sub 中调用 Myrange 函数
- excel - 确定 Sheet1 的 A 列中的任何值是否与 Sheet2 的每一行中的任何值匹配
- python - 计算二叉搜索树中只有一个孩子的节点?
- sql - SQL 多格式日期
- amazon-web-services - 我们如何在 docker 上运行 Neptune 图形数据库