我在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
语句。
一般而言,我似乎无法理解这是怎么可能的(项目不能同时在列表中和不在列表中),或者我的代码可能是怎么引起的。
答案 0 :(得分:1)
您的代码无法同时传递if
和elif
语句。即使两种情况都可以同时适用(在您的情况下也不能),elif
仅在if
检查失败的情况下才会被检查。
相反,您可能必须在break
之后添加if i == l:
,否则一个项目l
可能会多次添加到FinalList
中,这可能是继续在这里。