Python:匹配每个多个列表中的多个变量

问题描述:

我可以知道如何将多个字符串与多个列表进行匹配?我运行了代码,但它并没有给我'BEC'作为结果,为什么?Python:匹配每个多个列表中的多个变量

a = ["A", "B", "C"] 
b = ["AB","BB"] 
c = ["ABC","BCD","BEC"] 

av, bv, cv = 'B', 'AB', 'BEC' 

for _a, _b, _c in zip(a,b,c): 
    if _a == av and _b == bv and _c == cv: 
     print cv # 'BEC' 
+0

您是否正在检查值是否存在于任何列表中('set([av,bv,cv])

+0

我正在检查每个列表中是否存在这些值。我知道有一些更好的方法来解决这个问题,但我不知道如何。 –

+0

然后,如果变量av,bv,cv的值在其各自的列表中找到,则返回变量cv。 –

最简单的方法:用

if a in a and bv in b and cv in c: print cv 

all方式:

all((av in a, bv in b, cv in c)) 

令人费解all方式的乐趣:

_lists = [a,b,c] 
all(value in _lists[i] for i, value in enumerate([av,bv,cv])) 

from itertools import product 
a = ["A", "B", "C"] 
b = ["AB","BB"] 
c = ["ABC","BCD","BEC"] 

av, bv, cv = 'B', 'AB', 'BEC' 
for _a, _b, _c in product(a,b,c): 
    if _a == av and _b == bv and _c == cv: 
     print cv # 'BEC' 
+0

不错的代码,但我认为'所有((在B,B,CV在C))'适合我的需要。 :) –