在Python中搜索列表以查找匹配项?

时间:2017-04-16 20:49:41

标签: python list loops

我有Python列表,其中包含各种字符串,例如:

List1 = ["a","b","c","d"]
List2 = ["b","d","e","f"]
List3 = []
List4 = ["d","f","g"]

我需要遍历这些列表,前提是它们不是空白的,并查找所有非空白列表中的项目。在上面的示例中,完全匹配列表将是[“d”],因为这是所有非空白列表中出现的唯一项目。 List3是空白的,因此它不在该列表中也没关系。

3 个答案:

答案 0 :(得分:4)

这是一些功能性编程之美:

from operator import and_
from functools import reduce

Lists = List1, List2, List3, List4

result = reduce(and_, map(set, filter(None, Lists)))

答案 1 :(得分:0)

for thing in list1: # iterate each item, you can check before hand if its not empty
      if len(list2) > 0: # if not empty
         if thing in list2: # in the list 
            # do the same thing for the other lists

类似的东西

答案 2 :(得分:0)

我现在无法测试,但以下内容应该有效:

intersection(set(l) for l in [List1, List2, List3, List4] if l)

它使用Python的内置set数据类型来执行交集操作。