Skip to main content
 首页 » 编程设计

python之检查列表是否在列表列表中

2025年05月04日14jillzhang

我有以下内容来检查列表是否在列表列表中。 它返回错误的结果。这有什么问题?

my_list =  [['1', '2', '3'], ['7','8','9','10'], ['1','3','4','5'], ['10','11','12','13']] 
 
w = ['1', '2', '3'] -> True 
 
a = ['1','2'] -> True 
 
b = ['7','8','9','10'] -> True 
 
f = ['1', '0']  -> False 
 
c = [['1','3','4','5'], ['10','11','12','13']]  -> True 
 
d = [['1','3','4','4'], ['10','11','12','15']]  -> False 
 
def x_in_y(search_list, my_list): 
    return any([s in my_list for s in search_list]) 
 
 
print x_in_y(c, my_list) 
print x_in_y(a, my_list) 

部分匹配应该是正确的,只要列表中的所有元素都出现在 my_list 中。

请您参考如下方法:

您可以使用 in 直接检查一个列表是否包含在另一个列表中:

return search_list in my_list 

但由于您还想获得部分包含匹配项,甚至是列表包含项的列表,您可以试试这个:

def x_in_y(search_list, my_list): 
    if any(isinstance(i, list) for i in search_list): 
        return all([x_in_y(x,my_list) for x in search_list]) 
    return any([m for m in my_list if m == search_list or set(search_list) <= set(m)]) 

这将检查列表中的列表匹配、嵌套列表包含以及列表中的列表子集。