欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python__for循环和列表生成式的区别

程序员文章站 2022-10-17 14:49:33
话不多,上例子 没什么问题,每次循环都要修改一次列表, 下个例子 .....不想说话,这个坑踩了俩回了= = 原因是等号= 这个东西右边东西计算完成之后才会赋值(引用)给左边... 第一个例子每次循环都有一个赋值语句: L[i] = L[i] + L[i-1] 而下边这个列表生成式需要全部生成完之后 ......

话不多,上例子

>>> L = [1,1,1]
>>> for i in range(len(L)):
    L[i] = L[i] + L[i-1]
    print(L)

#结果    
[2, 1, 1]
[2, 3, 1]
[2, 3, 4]

没什么问题,每次循环都要修改一次列表,

下个例子

>>> L = [1,1,1]
>>> L = [L[i]+L[i-1] for i in range(len(L))]
>>> L
[2, 2, 2]

.....不想说话,这个坑踩了俩回了= =  原因是等号= 这个东西右边东西计算完成之后才会赋值(引用)给左边...

第一个例子每次循环都有一个赋值语句:

L[i] = L[i] + L[i-1] 

而下边这个列表生成式需要全部生成完之后才会赋值给左边- -

啊- . - ..........