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'
答
最简单的方法:用
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))'适合我的需要。 :) –
您是否正在检查值是否存在于任何列表中('set([av,bv,cv])
我正在检查每个列表中是否存在这些值。我知道有一些更好的方法来解决这个问题,但我不知道如何。 –
然后,如果变量av,bv,cv的值在其各自的列表中找到,则返回变量cv。 –