如何把列表推导式转换为循环的形式?
在做第24课关于杨辉三角的作业,在网上搜索到一个程序,里面的推导式没有看懂,想转换成循环的形式,没有成功,求助各位老师和大神:n =
for i in range(10):
print(*n)
n.append(0)
n = + n for k in range(i+2)]
最后一句推导式没有看懂,于是把它转换为循环的形式:
for k in range(i+2):
n=n + n
但结果不对,各位老师和大神可以帮我看看哪里出错了吗?谢谢 本帖最后由 jackz007 于 2022-11-9 18:32 编辑
n 是上一行的列表,列表推导式是根据上一行的列表新产生本行的列表,并直接覆盖上一行的列表 n,由于新列表产生之前,n 是产生新列表的依据,所以,解决问题的关键是,本行的列表必须另起炉灶。等新列表就绪了,再覆盖成上一行的列表 n。
n = + n for k in range(i+2)]
所以,这一行代码应该被分解成
d = []
for k in range(i + 2) : d . append(n + n)
n = d
页:
[1]