如何检查列表python中是否存在元素

2024-10-02 08:23:55 发布

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

我有一个列表,它对应于文件中的行,有多个列。

[ [col1, col2, col3], [elem1, elem2, elem3], [elem4, elem5, elem6] ] 

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


Tags: 文件列表col2col3col1elem1elem2elem3
3条回答

我遇到了一个类似的问题。我有一个元组列表,上面有平铺号:

data = [(0, 0, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 0),
    (0, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 0),
    (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)]

我需要找出元组列表中某个特定平铺号的位置,因此:

to_find = 42
for i in range(len(data)):
    if to_find in data[i]:
        print (i, data[i].index(to_find))
        break

你可以这样做:

def in_list(list_of_lists, item):
    for list_ in list_of_lists:
        if item in list_:
            return list_

编辑:

下面是它的递归版本:

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)

最短的方法是使用list comprehensionslist comprehensions有时比简单的for loop更快

您的列表:

list1 =  [ ["col1", "col2", "col3"], ["elem1", "elem2", "elem3"], ["elem4", "elem5", "elem6"] ]

要查找的元素:

to_find = "col1"

你的“进入列表”功能:

def do_something(sub_list):
    print (sub_list)

以及list comprehension,它将找到您的元素并使用具有该元素的列表调用函数:

[do_something(sub_list) for sub_list in list1 if to_find in sub_list]

相关问题 更多 >

    热门问题