如果行列表中的任何行包含子字符串

2024-09-24 00:34:47 发布

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

Python 3.7.3版

我有一个行列表,我想要一个语句来测试一个值是否包含在任何行中:

 >>> data=[["red blue green yellow"],["peter ann jack beatrice"]]
 >>> "ann" in data
 False

我希望这是真的

是否有一个没有显式迭代的单语句测试,它将为“ann”或两个列表中的任何单个值返回True


Tags: infalsetrue列表datagreenbluered
2条回答
'ann' in ' '.join(sum(data,[]))

你需要更深入

目前,您正在检查父列表中是否有元素与字符串“ann”相等-事实并非如此。所以您需要迭代每个元素并检查它

这是一个未经测试的递归示例,它将遍历任何查找子字符串的列表。它应该要么工作,要么给你灵感来完成你的任务

def check_for_substrings_in_list(substring, parent_list):
    for data in parent_list:
        if isinstance(data, list):
            if check_for_substrings_in_list(substring, data):
                return True
        elif isinstance(data, string) and substring in data:
            return True
    return False

相关问题 更多 >