Discuss / Python / 一个疑问

一个疑问

Topic source

看到大家的代码中都有这么一行:

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

感觉有些不困惑。因为我认为在for循环过程中会替换掉L[i](即下一轮for循环中L[i-1])的值。但是运行后发现这样的表达式是能够实现杨辉三角形的功能的。

那我认为这个式子是将L指向一个由列表生成式新生成的list,而不是在for循环的过程中直接改变L对应的list中的各个元素。 不知道我的理解对不对?希望能解答一下,谢谢!

L = [L[i] + L[i - 1] for i in range(len(L))]这个列表生成式中的for循环里的求值L[i] + L[i-1] 里面的两项只是从L列表中取出两个值来啊,并没有赋值语句,不存在替换的问题啊


  • 1

Reply