CurbStone_ 2023-03-31 16:44 采纳率: 80%
浏览 21
已结题

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

为何下面的代码,不报索引超限错误呢?在推导式中,当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

```

  • 写回答

3条回答 默认 最新

  • 小小小小人水豚 2023-03-31 17:05
    关注

    因为第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]也就不会超标了

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月15日
  • 已采纳回答 1月7日
  • 创建了问题 3月31日

悬赏问题

  • ¥15 STM32F103C8T6使用标准库stm32f10x.h驱动ws2812
  • ¥20 我是数控机床电气工程师,主要是做840DSL与one,请问如何自学
  • ¥20 显示器休眠后重新唤醒出现蓝屏,蓝屏代码为DRIVER-POWER.STATE-FAILURE
  • ¥20 alt+tab怎么恢复到以前的模式
  • ¥15 来一个会抓包app支付链接的
  • ¥15 MMdetection安装
  • ¥15 STM32U535系列stop3模式进入和RTC唤醒
  • ¥15 如何提取全民K歌没下载过但播放过很多次的音频?
  • ¥15 树莓派运行detect.py
  • ¥15 pdfplumber提起文本内容如何过滤水印内容