列表索引超出范围?如果陈述

时间:2018-11-23 02:50:29

标签: python-3.x list for-loop if-statement

我有一个令人费解的问题 我使用一些嵌套的if语句来生成列表,并使用列表中的变量

if List1[0] or List2[0] or List3[0] or List4[0] or List5[0] == 'Something':

现在我的假设是,它将检查任一位置的值是否是我的特定字词,如果不是,则继续执行下一个语句,但是在此处停止。

还有更多细分内容,您可以在此处查看我的目标

for i in range(5):
    if List1[0] or List2[0] or List3[0] List4[0] or List5[0] == 'Something':
        SuperList.append('example1, example2, example3')
        if List1[0] == 'Something':
            List1.remove('Something')
        elif List2[0] == 'Something':
            List2.remove('Something')
        elif List3[0] == 'Something':
            List3.remove('Something')
        elif List4[0] == 'Something':
            List4.remove('Something')
        elif List5[0] == 'Something':
            List5.remove('Something')
    elif List1[0] or List2[0] or List3[0] or List4[0] or List5[0] == 'SomethingElse':ECT.....

无论如何,我可以肯定地知道所有列表1-5都恰好包含1个单词,因为我的程序会在很长的if / nested if函数出现之前将它们全部打印出来

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我相信这里的问题是,您仅将List5 [0]与'Something'比较。您需要分别将“某些”与每个值进行比较。 (作为一个补充说明,因为您没有比较所有值,所以Python期望布尔值,而列表包含字符串值)。 要解决您的问题,您可以这样做,例如:

if List1[0] == 'Something' or List2[0] == 'Something' or List3[0] == 'Something' or List4[0] == 'Something' or List5[0] == 'Something':
    # The rest of your code here

同样,您必须分别比较每个值,以便它们可以成为布尔值。这似乎是您的代码的唯一问题。我希望这可以为您清除它。