项目都在列表中,但不在列表中

时间:2018-07-09 13:43:51

标签: python list

我在python中有3个列表:

list 
ItemNumbersClean
FinalList

我想为ItemNumbersClean中的每个项目查找是否在list中。如果它在list中,则可以从FinalList中查找信息并将其全部保存到新列表中:ExcelList

这是我的代码:

for l in ItemNumbersClean:
    count += 1
    if l in list:
        for t in FinalList:
            i = t[0]
            if i == l:
                excelList.append([str(i), str(t[1]), str(t[2])])
                match_counter += 1
    elif l not in list:
        not_found_counter += 1
        excelList.append(['not found', 'not found', 'not found'])

ItemNumbersClean的项目编号长度。

但是,当我将调试计数器(match_counter和not_found_counter)加在一起时,得到186。

另外ExcelList的长度为186。

由于ItemNumbersClean的长度只有151,因此excelList的长度可能大于151的唯一方法是,如果ItemNumbersClean中的某些项目同时通过了{{1 }}和if语句。

一般而言,我似乎无法理解这是怎么可能的(项目不能同时在列表中和不在列表中),或者我的代码可能是怎么引起的。

1 个答案:

答案 0 :(得分:1)

您的代码无法同时传递ifelif语句。即使两种情况都可以同时适用(在您的情况下也不能),elif仅在if检查失败的情况下才会被检查。

相反,您可能必须在break之后添加if i == l:,否则一个项目l可能会多次添加到FinalList中,这可能是继续在这里。