如何使用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.然而,有些人认为列表理解具有副作用,而不是容易出错:它不是非常具有声明性,并且如果不仔细地进行则往往会引入错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |