[英]TypeError(“'NoneType' object has no attribute '__getitem__'”,)
[英]Python: TypeError: 'NoneType' object has no attribute '__getitem__'
当我尝试运行此命令时:
lista=[4,10,4,15,6,15,18,10,7]
listb=[5,10,5,18,11,35,21,10,7]
import math
for i in range(9):
a=math.log10(lista[i])
b=math.log10(listb[i])
lista=lista.insert(i,a)
listb=listb.insert(i,b)
for i in range(17,8,-1):
lista.remove(lista[i])
listb.remove(listb[i])
print(lista)
print(listb)
然后我得到:
File "C:/Python27/Lib/site-packages/xy/untitled3.py", line 11, in <module>
a=math.log10(lista[i])
TypeError: 'NoneType' object has no attribute '__getitem__'
我需要帮助。 非常感谢你
这是因为insert()
不返回任何内容 ,因此您在以下各行中将None
分配给列表:
lista=lista.insert(i,a)
listb=listb.insert(i,b)
只需执行以下操作即可:
lista.insert(i,a)
listb.insert(i,b)
a = [1,2,3]
b = a.insert(1,1)
>>> print b
None
>>> print a
[1,1,2,3]
lista.insert()
返回None
因为列表就地改变,并且不会返回更新列表。
在循环的第二次迭代中, lista
为None
而lista[i]
失败。
不要分配插入结果:
for i in range(9):
a=math.log10(lista[i])
b=math.log10(listb[i])
lista.insert(i,a)
listb.insert(i,b)
经过更正后,您的代码将输出:
[0.6020599913279624, 0.6020599913279624, 0.6020599913279624, 0.6020599913279624, 0.6020599913279624, 0.6020599913279624, 0.6020599913279624, 0.6020599913279624, 0.6020599913279624]
[0.6989700043360189, 0.6989700043360189, 0.6989700043360189, 0.6989700043360189, 0.6989700043360189, 0.6989700043360189, 0.6989700043360189, 0.6989700043360189, 0.6989700043360189]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.