python - 解释一下为什么 "results"在3个不同的位置有不同的输出?

标签 python

#Position1: 
#results=[]
for i in range(2):
    #Position2:
    results=[]
    for j in range(3):
        #Position3:
        #results=[]
        results.append(i+j)
print(results)

最佳答案

这是不同的,因为 results=[] 只是将列表重新启动为空列表。因此,一旦您的代码执行results=[],其中存储的所有数据都会被删除。这取决于您初始化此列表的位置。所有三个位置都处于不同级别的 for 循环,因此输出不同。

位置 1 将存储两个 for 循环的所有输出,这意味着 for i = 0, j = 0, 1, 2 然后 i = 1, j = 0, 1, 2

位置 2 将重新初始化列表两次,因为您的外循环运行了两次。因此它将存储与 i = 1j = 0, 1, 2 对应的数据,因为 i = 0 的列表将结束-写的。

位置 3 将重新初始化列表六次,因为外循环运行两次,内循环运行三次(外循环每次迭代三次)。

关于python - 解释一下为什么 "results"在3个不同的位置有不同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121232/

相关文章:

python - 如何在 Python 中并行检查多个列表中是否存在某个项目?

c++ - 在 python 中嗅探音频?

python - 使用python从csv文件中读取复数

python - FastText .bin 文件无法装入内存,即使我有足够的 RAM

python - GCP Cloud Shell 在哪个目录中运行?

Python - UDP套接字绑定(bind)()到正确的地址

python - 扩展列表中的元素

javascript - 为什么 Flask 会与 Reactjs 一起用于 Restful API?

python - 使用 Dockerfile 安装 MongoDB 和 Tomcat

python - 从 ElementTree findall 返回的空列表