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 for循环生成列表?_Python_List - Fatal编程技术网

Python for循环生成列表?

Python for循环生成列表?,python,list,Python,List,我想知道Python 3中的这段代码是做什么的?我试着打印列表a,但花了太长时间…我真的在问第二部分。我对下面的下划线感到困惑。首先,这个表达式被称为列表理解。它用于在迭代另一个列表/iterable时创建新列表。一个好的情况是 a = [0,1]+[2 for _ in range (10**7+1)] 生成新数组[],该数组的值将取决于每次迭代时上面表达式中的值。意思是如果你做了什么事 [value for item in range(integer)] 在这种情况下,值可以是表达式或常

我想知道Python 3中的这段代码是做什么的?我试着打印列表a,但花了太长时间…我真的在问第二部分。我对下面的下划线感到困惑。

首先,这个表达式被称为列表理解。它用于在迭代另一个列表/iterable时创建新列表。一个好的情况是

a = [0,1]+[2 for _ in range (10**7+1)]
生成新数组[],该数组的值将取决于每次迭代时上面表达式中的值。意思是如果你做了什么事

[value for item in range(integer)]
在这种情况下,值可以是表达式或常量 在您的例子中,[2 for x In range3]返回[2,2,2],因为每次迭代的值都保持为2

我几乎忘记了[a,b]+[c,d,e]=[a,b,c,d,e]

因此,为了简单起见,[0,1]+[2对于范围3中的x]返回[0,1,2,2]


最后,你的范围太大,这就是为什么它需要太长的评论中提到的

_u只是一个变量名,与其他名称一样。他们可以称之为i或wilco或michaeljordan。[2因为uu在10**7+1范围内]给你一个长度为10**7+1的列表,元素都是2只要在较小的范围内尝试,你就会看到,而所有其他注释都是正确的,来回答你的问题:下划线只是一个变量名。对于多余或未使用的变量使用u是一种Python约定,这里就是这种情况,它仅用作迭代的计数器,其实际值不可用。我建议您将range语句中的数字更改为非常小的值,然后看看它的作用。从那里可以更容易地找到答案。
[x for x in range(3)] # returns [0,1,2]
[x*4 for x in range(2)] # returns [0,4,8]