2017-09-17 69 views
1

我可以知道如何將多個字符串與多個列表進行匹配?我運行了代碼,但它並沒有給我'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。 –

回答

1

最簡單的方法:用

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])) 
0
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))'適合我的需要。 :) –