如何检查一个列表是否包含另一个列表元素?
检查列表中是否包含子列表的实现方法
你需要判断的是列表中是否存在类型为列表的元素,无需关注元素内容是否相似。可以通过any()函数结合isinstance()类型检查来实现,具体代码如下:
l1 = [1,2,3] l2 = [4,5,[6]] # 定义判断函数 def has_sublist(lst): # 遍历列表元素,检查是否有元素是列表类型 return any(isinstance(item, list) for item in lst) # 测试示例 print(has_sublist(l1)) # 输出: False print(has_sublist(l2)) # 输出: True
原理说明
isinstance(item, list):逐个检查列表中的元素是否属于列表类型;- 生成器表达式
(isinstance(item, list) for item in lst)会遍历列表的每一个元素,生成布尔值; any()函数会在找到第一个True结果时立即停止遍历,返回True,如果所有元素都不满足条件则返回False,这种写法效率较高。
如果不需要封装成函数,也可以直接使用一行代码完成判断:
# 直接判断l1是否包含子列表 print(any(isinstance(i, list) for i in l1)) # False # 直接判断l2是否包含子列表 print(any(isinstance(i, list) for i in l2)) # True
内容的提问来源于stack exchange,提问作者Amrmsmb
相关产品推荐
相关产品推荐

