我做一个循环来计算单词列表中出现的单词数。所以我使用下面的代码:
for i in range(len(traindocs_clean)):
for word in traindocs_clean[i][1][0]:
if traindocs_clean[i][1] is None:
continue
wordDict[word]+=1
但是我知道有些行有null / NoneType / Blank值所以当我运行代码时我会得到关注错误
for word in traindocs_clean[i][1][0]:
TypeError: 'NoneType' object is not subscriptable
我尝试使用关键字'继续'并且'通过'忽略这些记录并跳转到下一个记录,但显然它不起作用。 我搜索过去的评论和帖子,但我无法得到正确答案,所以如果您认为已经有一些相同的帖子请分享链接,否则我感谢您帮助我解决方案。 谢谢
答案 0 :(得分:1)
您可以使用try-except
块处理异常:
for i in range(len(traindocs_clean)):
try:
for word in traindocs_clean[i][1][0]:
wordDict[word] += 1
except TypeError:
pass
注意:最好不要使用pass和log或以正确的方式处理错误。
使用try-except
还有另一个好处,即能够处理多个异常和/或在不同情况下运行不同的命令。例如,如果您的代码也容易IndexError
,则可以执行以下操作:
try:
for word in traindocs_clean[i][1][0]:
wordDict[word] += 1
except (TypeError, IndexError):
pass
或者,如果您想以另一种方式使用IndexError
:
try:
for word in traindocs_clean[i][1][0]:
wordDict[word] += 1
except TypeError:
pass
except IndexError:
# do something
答案 1 :(得分:0)
for word in traindocs_clean[i][1][0]:
if traindocs_clean[i][1] is None:
continue
当if
条件检查traindocs_clean[i][1] is None
for
循环是否已尝试访问(并迭代)raindocs_clean[i][1][0]
时raindocs_clean[i][1]
。如果None
为if
,则在traindocs_clean[i][1]
条件有机会验证if
不是无之前,它将失败。
要解决此问题,您应将for
条件移到for i in range(len(traindocs_clean)):
if traindocs_clean[i][1] is None:
continue
for word in traindocs_clean[i][1][0]:
wordDict[word] += 1
循环之上:
$(document).ready(function() {
if([your if clause]) {
jQuery(".logo-desktop img").attr("src","yournewsource.jpg");
}
}