gpt4 book ai didi

Python - 在三个列表中查找相同的元素(忽略空列表)

转载 作者:行者123 更新时间:2023-11-28 20:41:12 24 4
gpt4 key购买 nike

我想知道是否有任何方法可以找到三个列表的共同元素,同时忽略三个列表中的空列表。例如我知道:

a = ['a', 'b', 'c', 'd']
b = ['a', 'v', 'd', 'g']
v = ['d']
>>> set(a).intersection(b, v)
{'d'}

但我想知道是否有办法做到这一点:

a = ['a', 'b', 'c', 'd']
b = ['a', 'v', 'd', 'g']
v = []
>>> comparison_method(a, b, v)
{'a', 'd'}

或者如果 3 个列表中有 2 个为空,它只会返回不是的列表。

最佳答案

使用过滤器然后设置交集:

set.intersection(*map(set,filter(None, [a,[],[]])))

O/P: set(['a', 'c', 'b', 'd'])

set.intersection(*map(set,filter(None, [a,b,[]])))

O/P: set(['a', 'd'])

set.intersection(*map(set,filter(None, [a,b,v])))

O/P : set(['d'])

作为jme建议哪个是更好的解决方案

set.intersection(*(set(x) for x in [a, b, v] if x))

关于Python - 在三个列表中查找相同的元素(忽略空列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33950110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com