Python append()函数是否将索引和值都添加到另一个列表中?

Python append()函数是否将索引和值都添加到另一个列表中?,python,Python,以下是我试图理解的代码: 该代码是Erastothenes筛选的实现。如果我理解正确,那么直到第8行,代码创建了一个素数列表,最大为N,该列表是一个布尔列表,其中True-prime;假-非素数;索引编号与我们输出的编号匹配 我的问题是: 对于第9-13行,脚本是否在新列表中用索引和布尔值“重写”素数(仅为真值),以便我们在末尾打印它们? 另外,如果primes是一个布尔列表,为什么python会在末尾打印索引值,而不仅仅是一堆真参数 更新:我知道了,谢谢大家!range是一组2-n+1的整数,

以下是我试图理解的代码:

该代码是Erastothenes筛选的实现。如果我理解正确,那么直到第8行,代码创建了一个素数列表,最大为N,该列表是一个布尔列表,其中True-prime;假-非素数;索引编号与我们输出的编号匹配

我的问题是: 对于第9-13行,脚本是否在新列表中用索引和布尔值“重写”素数(仅为真值),以便我们在末尾打印它们? 另外,如果primes是一个布尔列表,为什么python会在末尾打印索引值,而不仅仅是一堆真参数

更新:我知道了,谢谢大家!range是一组2-n+1的整数,因此我也是整数,这就是为什么我在primes字符串中得到整数。出于某种原因,我最初认为范围是列表1

def sita(N):
列表1=[范围(N+1)内的u为真]
列表1[0:1]=[False,False]
对于范围(2,N+1)内的启动:
如果列表1[开始]:
对于范围内的i(2*开始,N+1,开始):
列表1[i]=错误
素数=[]#创建空列表
对于范围(2,N+1)内的i:
如果列表1[i]:
素数。附加(i)
返回素数
打印(sita(int(输入)(“Dati un numar N:”))
primes.append(i)
仅附加其参数,
i
。没有任何魔法会在列表中附加任何其他内容

在代码中,有两个独立的列表:
list1
primes

  • 第一个包含每个非负整数的布尔值

  • 第二个包含那些在第一个循环结束时
    list1
    包含
    True
    的整数(这是
    if list1[i]
    检查所做的)


您的循环,
对于范围(2,N+1)中的i:
正在实际索引上循环。它测试
list1[i]
中的布尔值,但只存储索引。布尔值(
list1[i]
)无需写入;您
append
ed
i
表明测试通过,并且
i
已知与素数对应。由于
primes
是从零开始构建的,因此它根本不包含布尔值,只包含各种
i
值(测试并找到prime)
在最后一个循环中附加到它。

primes不是布尔值列表。这就是第二个循环的整个点。你能解释一下“同时使用索引和布尔值重写”是什么意思吗?我的意思是,它接受为真的值,并使用相同的旧索引和值在新列表中重写它们