我正在学习Python,在这段代码IndexError: list index out of range
中遇到了last_element2 = each_list2[-1]
。我试图通过添加each_list2不为0来解决它,但仍然无法正常工作。
我该如何解决?谢谢!
for each_list2 in nodesAbandonedTotal:
if each_list2 is not 0:
last_element2 = each_list2[-1]
final_element2 = last_element2[-1]
if final_element2 == "get_started" or final_element2 == "saludo":
countGetStarted = countGetStarted + 1
elif final_element2 == "ae-1" or final_element2 == "ae-d":
countFaltaEntendimiento = countFaltaEntendimiento + 1
答案 0 :(得分:1)
您的代码中存在严重的缩进错误:
for each_list2 in nodesAbandonedTotal:
if each_list2:
last_element2 = each_list2[-1]
final_element2 = last_element2[-1]
if final_element2 == "get_started" or final_element2 == "saludo":
countGetStarted = countGetStarted + 1
elif final_element2 == "ae-1" or final_element2 == "ae-d":
countFaltaEntendimiento = countFaltaEntendimiento + 1
这假设each_list2
是一个列表,如果它是整数,请使用:each_list2 != 0
答案 1 :(得分:1)
您可以检查列表中是否有项目
if len(each_list2) > 0:
或
if each_list2:
这将检查列表是否为空。
此外,if final_element2 == "get_started" or final_element2 == "saludo":
和elif final_element2 == "ae-1" or final_element2 == "ae-d":
必须位于if each_list2:
支票内
for each_list2 in nodesAbandonedTotal:
if each_list2:
last_element2 = each_list2[-1]
final_element2 = last_element2[-1]
if final_element2 == "get_started" or final_element2 == "saludo":
countGetStarted = countGetStarted + 1
elif final_element2 == "ae-1" or final_element2 == "ae-d":
countFaltaEntendimiento = countFaltaEntendimiento + 1
答案 2 :(得分:1)
尽管@Leo和@Roshin提供的答案很接近,但它们未能在对last_element2
进行索引之前验证其元素。由于您最初的问题与索引问题有关,因此解决方案不应容易出现其他索引问题。
例如,尝试使用有效负载nodesAbandonedTotal = [ [ [ ] ] ]
,您将看到两个建议的解决方案均失败。
这是一个经过修订的解决方案,可以解决last_element2
为空的情况。
for each_list2 in nodesAbandonedTotal:
if each_list2:
last_element2 = each_list2[-1]
if last_element2:
final_element2 = last_element2[-1]
else:
final_element2 = None
if final_element2 == "get_started" or final_element2 == "saludo":
countGetStarted = countGetStarted + 1
elif final_element2 == "ae-1" or final_element2 == "ae-d":
countFaltaEntendimiento = countFaltaEntendimiento + 1