繁体   English   中英

如何检查一个列表是否包含另一个不同值的列表

[英]How to check if a list contains another list of different values

我想知道如何检查一个列表是否包含另一个列表,而不管是否包含相似的值。 给出下面发布的示例,我想对列表中是否存在列表进行条件检查。 换句话说,对于l1的值,检查应返回 False,对于l2 ,检查应返回 True

请让我知道如何实现

代码

l1 = [1,2,3]
l2 = [4,5,[6]]

要检查一个列表是否包含另一个不同值的列表,您可以在 if 语句中使用 in 关键字。 例如:

l1 = [1, 2, 3]
l2 = [4, 5, [6]]

if [6] in l1:
    print("l1 contains [6]")
else:
    print("l1 does not contain [6]")

if [6] in l2:
    print("l2 contains [6]")
else:
    print("l2 does not contain [6]")

此代码将检查列表 [6] 是否包含在列表 l1 和 l2 中,并打印一条消息指示是否包含。 输出将是:

l1 does not contain [6]
l2 contains [6]

这种方法之所以有效,是因为 in 关键字会检查列表中是否包含元素,而不管元素的值如何。 在这种情况下,要搜索的元素是列表 [6],如果该列表包含在要搜索的列表中,则 in 关键字将返回 True,否则返回 False。

另一种选择是使用 any 函数,如果列表中的任何元素满足给定条件,该函数返回 True,否则返回 False。 例如:

l1 = [1, 2, 3]
l2 = [4, 5, [6]]

if any(isinstance(x, list) for x in l1):
    print("l1 contains a list")
else:
    print("l1 does not contain a list")

if any(isinstance(x, list) for x in l2):
    print("l2 contains a list")
else:
    print("l2 does not contain a list")

此代码将检查列表中是否有任何元素`

IIUC,您可以将anyisinstance结合使用:

l1 = [1, 2, 3]
l2 = [4, 5, [6]]


def contains_list(lst):
    return any(isinstance(e, list) for e in lst)


print(contains_list(l1))
print(contains_list(l2))

输出

False
True

使用isinstance在 Python 中检查类型的规范方法

这就是你要找的

def contains_lists(ls):
    return any([type(x) == list for x in ls])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM