使用列表理解的帕斯卡三角形

问题描述 投票:0回答:1

正如标题所说,我在使用列表理解来创建帕斯卡三角形时遇到问题。

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')

我收到以下错误: (https://i.stack.imgur.com/dd6w5.png)

我不明白索引在哪里超出范围以及如何修复它。谢谢你。

python list list-comprehension pascals-triangle
1个回答
0
投票

要使用列表理解计算帕斯卡三角形,您可以使用

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]
© www.soinside.com 2019 - 2024. All rights reserved.