我有Python列表,其中包含各种字符串,例如:
List1 = ["a","b","c","d"]
List2 = ["b","d","e","f"]
List3 = []
List4 = ["d","f","g"]
我需要遍历这些列表,前提是它们不是空白的,并查找所有非空白列表中的项目。在上面的示例中,完全匹配列表将是[“d”],因为这是所有非空白列表中出现的唯一项目。 List3是空白的,因此它不在该列表中也没关系。
答案 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数据类型来执行交集操作。