【发布时间】:2021-11-14 18:10:17
【问题描述】:
我正在尝试将列表理解代码 trow=[left+right for left,right in zip(trow+y, y+trow)] 转换为 for 循环而不是列表理解。我试图进行这种转换,但它不起作用。我将如何做到这一点?
For循环代码:
def PascalTriangle(n):
trow = [1]
y = [0]
for x in range(n):
print(trow)
for left,right in zip(trow+y, y+trow):
trow.append(left+right)
return n>=1
PascalTriangle(6)
列表理解代码:
def PascalTriangle(n):
trow = [1]
y = [0]
for x in range(n):
print(trow)
trow=[left+right for left,right in zip(trow+y, y+trow)]
return n>=1
PascalTriangle(6)
输出:
[1]
[1, 1, 1]
[1, 1, 1, 1, 2, 2, 1]
[1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 3, 4, 3, 1]
[1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 3, 4, 3, 1, 1, 2, 2, 2, 3, 4, 3, 2, 3, 4, 4, 5, 7, 7, 4, 1]
[1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 3, 4, 3, 1, 1, 2, 2, 2, 3, 4, 3, 2, 3, 4, 4, 5, 7, 7, 4, 1, 1, 2, 2, 2, 3, 4, 3, 2, 3, 4, 4, 5, 7, 7, 4, 2, 3, 4, 4, 5, 7, 7, 5, 5, 7, 8, 9, 12, 14, 11, 5, 1]
预期输出:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
【问题讨论】:
-
trow.append(left+right)就地并返回None。删除作业 -
我已经做到了,但我将如何附加到
trow列表 -
要澄清@rdas 的意思,而不是
trow = trow.append(...),只需执行trow.append(...)。 -
我已经更新了我仍然无法达到预期输出的问题
标签: python list for-loop nested range