【发布时间】:2015-10-29 04:22:47
【问题描述】:
if (zlist[i+1])==(zlist[i]):
TypeError: 'NoneType' object is not subscriptable
在函数内部执行此操作时出现此错误:
def plaintextmodOne(ylist):
i = int(0)
zlist = list(ylist)
elementalcount = len(zlist)
while i<elementalcount:
if (zlist[i+1]) == (zlist[i]):
if zlist[i] == 'X':
zlist = zlist.insert(i+1, 'Q')
else:
zlist = zlist.insert(i+1, 'X')
i += 2
return(ylist)
如果我只是在 while 循环中执行 len(zlist) 而不是 elementalcount 我得到:
TypeError: object of type 'NoneType' has no len()
我试图比较左边的元素是否相同,在这种情况下,如果它们都是 X,则添加 Q,如果不是 X,则添加 X。
它们被添加到重复值之前。当下一次迭代发生时,索引增加了两个(如按对)以查看下对是否相同。
【问题讨论】:
-
仅供参考,当您修复我刚刚解决的问题时,您将遇到一个单独的问题;您在
zlist中访问i+1,但仅验证zlist足够大以索引i(即使使用正确的实时len(elementalcount))。
标签: python python-3.x nonetype