如何检查Python中的列表列表中是否存在某个元素?

use*_*659 5 python search element list nested-lists

我有一个与文件中的行相对应的列表列表,具有多列。

[[col1, col2, col3], [elem1, elem2, elem3], [elem4, elem5, elem6]] 
Run Code Online (Sandbox Code Playgroud)

我想检查(例如)是否elem3在任何列表中,如果是,请进入该列表。(实际上我有一个需要检查的内容列表,所以它是一个可能包含elem3, elem5, elem7.... 等的列表)

Bob*_*ell 1

你可以这样做:

def in_list(list_of_lists, item):
    for list_ in list_of_lists:
        if item in list_:
            return list_
Run Code Online (Sandbox Code Playgroud)

编辑:

这是一个递归版本:

def in_list(list_of_lists, item):
    if not list_of_lists:
        return None
    if item in list_of_lists[0]:
        return list_of_lists[0]
    return in_list(list_of_lists[1:], item)
Run Code Online (Sandbox Code Playgroud)

  • @BobbyRussell *“`in` 不会迭代列表”* 是的。“item in lst”是一个“O(n)”操作,它会迭代“lst”,直到找到“item”或“lst”耗尽。 (5认同)