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

标签 python

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

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)])

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

关于python - 检查列表是否在列表列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55486472/

相关文章:

Python Selenium : get element by class and convert to text

python - 安装后无法运行pywin32

python - 为什么这个 tkinter 菜单小部件的一部分不显示?

python - 列表中元素的识别 - 机器学习

python - python中的系统函数是什么

python - Django 中的异步

Python 在 pandas csv reader 中解压缩 gzip csv

Python:如何使用鼠标点击来工作?

python - 在测试和训练数据集中使用基于时间的拆分来拆分数据

python - 如何打包命令行 Python 脚本