列表中的项目和不在列表中的项目

2024-04-19 09:19:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个python列表:

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\u counter和not\u found\u counter)加在一起时,我得到186。你知道吗

同样ExcelList的长度也是186。你知道吗

由于ItemNumbersClean的长度只有151,因此excelList长度超过151的唯一可能方式是ItemNumbersClean中的某些项同时传递ifelif语句。你知道吗

我似乎不明白这是怎么可能的,或者一般来说,(一个项目不能既在列表中又不在列表中),或者我的代码可能是怎么造成这种情况的。你知道吗


Tags: in列表forifmatchcounternotlist
1条回答
网友
1楼 · 发布于 2024-04-19 09:19:16

您的代码不能同时传递ifelif语句。即使这两个条件可以同时应用(在您的情况下它们不能),也只有在if检查失败时才会检查elif。你知道吗

相反,您可能必须在if i == l:之后添加一个break,否则单个项l可能会多次添加到FinalList,这可能就是这里发生的情况。你知道吗

相关问题 更多 >