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

时间:2019-09-02 00:04:53

标签: python list

Python 3.7.3

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

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

我希望这是真的。

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

2 个答案:

答案 0 :(得分:1)

'ann' in ' '.join(sum(data,[]))

答案 1 :(得分:0)

您需要更进一步。

目前,您正在检查父列表中是否有任何元素与字符串“ 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