关于杨辉三角算法迭代器的疑问?

为何下面的代码,不报索引超限错误呢?在推导式中,当x=0时,line只有一个元素,line[x+1]不久超下标了吗?


```python
def yahui():
    line=[1]
    while True:
        yield line
        line=[1]+[line[x]+line[x+1] for x in range(len(line)-1)] + [1]
        

yh = yahui()
n = 0
while n < 3:
    print(next(yh))
    n += 1

```

yield line
这已经又产生了一行

因为第1次执行x=0的时候,此时len(line)=1,也就是说推导列表里for循环遍历range(0),再进一步就是[line[x]+line[x+1] for x in range(len(line)-1)]这些代码是不会执行的;
后续执行完next之后,len(line) > 1了,line[x+1]也就不会超标了

有帮助的话,请点采纳该答案~

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^