Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这两种列表理解计算之间有什么不同?_Python_Python 3.x - Fatal编程技术网

Python 这两种列表理解计算之间有什么不同?

Python 这两种列表理解计算之间有什么不同?,python,python-3.x,Python,Python 3.x,我一直在运行我自己的统计分析,但我很好奇为什么以下两个列表理解有不同的输出。我正在Ubuntu LTS 16.04上使用Jupyter笔记本: 输入: example = [[15, 16, 17], [18, 19, 20]] list1 = [item[0] + item[1] + item[2] for item in example] for item in example: list2 = [item[0] + item[1] + item[2]]

我一直在运行我自己的统计分析,但我很好奇为什么以下两个列表理解有不同的输出。我正在Ubuntu LTS 16.04上使用Jupyter笔记本:

输入:

example = [[15, 16, 17],
           [18, 19, 20]]

list1 = [item[0] + item[1] + item[2] for item in example]

for item in example:

    list2 = [item[0] + item[1] + item[2]]

list1, list2
输出:[48,57],[57]


显然,第二个函数正在打印第二行的总和,但为什么不打印第一行呢?

第二个示例不是列表理解,最后的列表只有一个项,因为每次循环执行时都会覆盖list2变量。

要获得相同的输出,第二个循环应更正为:

list2 = []
for item in example:
    list2.append(item[0] + item[1] + item[2])

否则,您将覆盖在循环的上一次迭代中分配给列表2的内容,只得到上一次迭代的结果。

第二个示例不是列表理解。你只是重复给同一个名字赋值。明白了,我想它不知怎么被覆盖了,只是不知道为什么。谢谢谢谢你的解释!在我的原始代码中确实有。