加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何使用Python的列表推导创建斐波纳契系列?

发布时间:2020-12-20 12:33:55 所属栏目:Python 来源:网络整理
导读:我是 python的新手,我想知道我是否可以使用python的列表推导功能生成斐波纳契系列.我不知道列表推导是如何实现的. 我尝试了以下(目的是生成前五个斐波纳契数): series=[]series.append(1)series.append(1)series += [series[k-1]+series[k-2] for k in rang
我是 python的新手,我想知道我是否可以使用python的列表推导功能生成斐波纳契系列.我不知道列表推导是如何实现的.
我尝试了以下(目的是生成前五个斐波纳契数):

series=[]
series.append(1)
series.append(1)
series += [series[k-1]+series[k-2] for k in range(2,5)]

这段代码抛出错误:IndexError:list index超出范围.

让我知道是否有可能使用列表理解生成这样的系列.

解决方法

你不能这样做:首先评估列表推导,然后将该列表添加到系列中.所以基本上就像你会写的那样:

series=[]
series.append(1)
series.append(1)
temp = [series[k-1]+series[k-2] for k in range(2,5)]
series += temp

但是,您可以通过使用列表推导作为强制副作用的方法来解决此问题,例如:

series=[]
series.append(1)
series.append(1)
[series.append(series[k-1]+series[k-2]) for k in range(2,5)]

请注意,我们这里不会将结果添加到系列中.列表推导仅用于在系列上调用.append.然而,有些人认为列表理解具有副作用,而不是容易出错:它不是非常具有声明性,并且如果不仔细地进行则往往会引入错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读