检查子字符串匹配并创建新列表

时间:2019-05-20 15:24:20

标签: python python-3.x list for-loop

这个问题感觉很基本,我必须忽略一些明显的问题。 Stack上有很多与此相关的文章,但是我发现没有什么能涵盖此用例。

我有两个列表-一个带有URL,一个带有子字符串:

list1 = ['https://', 'http://', 'woof://', 'meow://']
list2 = ['https://google.com', 'stackoverflow.com', 'meow://test.net', 'yahoo.com']

我想创建第三个列表,其中list1中的所有值都从list2中删除。

例如-list3 = ['google.com', 'stackoverflow.com', 'test.net', 'yahoo.com']

我尝试过:

for x in list1:
    for y in list2:
        if x in y:
            list3.append(y.replace(x, '')
        else:
            list3.append(y)

这将创建一个包含很多重复项的列表。我可能可以添加逻辑来清理list3,但我觉得似乎必须有更多的Python方式才能做到这一点。

我觉得this post接近我要寻找的内容,但还远远不够。

1 个答案:

答案 0 :(得分:0)

您可以对functools.reduce使用理解:

filename.functionName(variables)