正如标题所说,我在使用列表理解来创建帕斯卡三角形时遇到问题。
n = int(input())
a = []
a = [[1 if j > 0 and j < n-1 else a[i-1][j] + a[i-1][j-1] for j in range(i)] for i in range(n)]
print(*a, sep = '\n')
我不明白索引在哪里超出范围以及如何修复它。谢谢你。
math.factorial
:
from math import factorial as fct
rows = [[int(fct(n) / (fct(k) * fct(n - k))) for k in range(n + 1)] for n in range(5)]
print(*rows, sep="\n")
打印:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]