python中的 list(m)[i] 与 a=list(m); a[i]不一样吗?为什么

importitertoolsdefpi(N):#创建奇数序列number=itertools.count(1,2)#取序列的前N项result=itertools.ta... import itertoolsdef pi(N): # 创建奇数序列 number = itertools.count(1, 2) #取序列的前N项 result = itertools.takewhile(lambda x: x <2 * N , number) #添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ... ms=[] #a=list(m) for n in range(N) ms.append((-1)**n*4/(list(m)[n])) return sum(ms)报错内容如下图所示:ms.append((-1)**n*4/(list(m)[n])) IndexError: list index out of range 去掉 a=list(m) 的注释,并将报错行改为:ms.append((-1)**n*4/(a[n])) 程序顺利运行这是为什么啊,希望有人指点迷津 展开
 我来答
考骄70
科技发烧友

2019-12-21 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1096
采纳率:58%
帮助的人:66.8万
展开全部
你不是测试后面的都报错了呀,说明不能,list(m)[i]这种写法就不对,
追问
报错提示了 list index out of range,而且如果先把list(m)赋值给a,后面再写a[i],这样就对了,这是为什么啊,我想理解背后的原因。
追答
赋值了就回分配内存,是可以的,没赋值没有分配内存,不行的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式