搜索列表中的元素是否在其他列表中至少包含一次

时间:2018-08-17 08:29:13

标签: python python-3.x

我有两个字符串列表

a = ['a','b','c']
b = ['aa','b','d']

我需要检查列表a中的每个元素是否包含在列表b中的任何元素中

我尝试了几种解决方案,但我认为应该可以解决,但总是返回True

def list_compare(list1,list2):

for item in list1:
    if any(item for s in list2):
        return True
return False

print(list_compare(a,b))

有人知道吗?

我需要进行比较才能在查询文件中搜索关键字。我正在搜索是否所有关键字都在文件中(文件作为列表分成几行),如果是,则返回包含任何关键字的所有行。

3 个答案:

答案 0 :(得分:1)

您可以像这样使用anyall

>>> def list_compare(list1,list2):
...     return all(any(x in y for y in list2) for x in list1)
... 
>>> print(list_compare(a,b))
False

答案 1 :(得分:0)

def compare(list1,list2):
    for item in list1:
        if item in list2:  #checking the item is present in list2
            continue       # if yes, goes for next item in list1 to check
        else:
            return False   #if no, immediately comes out with "False"
    else:
        return True        #reaches here, only if all the items in list1 is 
                           #present in list2 , returning "True"

    print(compare(lista,listb))

答案 2 :(得分:0)

查找行中的单词用法。 单词可以是行的子字符串(行可以包含多个单词)。

wordsToFind = ['a','b','c']
linesOfDocument = ['aa','ab','1234b','d']
for word in wordsToFind:
    for line in linesOfDocument:
        if word in line:
            print('Found word ' + word + ' in line ' + line)

示例输出:

Found word a in line aa
Found word a in line ab
Found word b in line ab
Found word b in line 1234b