a = [0,1]+[2 for _ in range (10**7+1)]
我想知道Python 3中的这段代码是做什么的?我尝试打印列表但是花了太长时间......我真的在问第二部分。我对那里的下划线感到困惑。
答案 0 :(得分:0)
首先,表达式称为 list comprehension 。它用于在迭代另一个列表/可迭代时创建新列表。一个好的方案是
[value for item in range(integer)]
生成新数组[]
,该数组的值将取决于每次迭代上面表达式中的value
。这意味着你做了什么行
[x for x in range(3)] # returns [0,1,2]
[x*4 for x in range(2)] # returns [0,4,8]
在这种情况下,值可以是表达式或常量
在您的情况下[2 for x in range(3)] # returns [2,2,2]
因为每次迭代,值仍为2
我几乎忘了[a,b] + [c,d,e] = [a,b,c,d,e]
所以简单[0,1] + [2 for x in range(3)] # returns [0,1,2,2,2]
最后,你的范围太大,以至于为什么评论中提到的时间太长了!