有一个包含n个元素的列表,如何检查每对元素是否满足条件?
example = ["aabbcc", "bca", "bc"]
for item in example:
# check code here
我基本上想知道“ aabbcc”的所有字符是否都在“ bca”中,那么“ bca”在“ bc”中,而“ aabbcc”在“ bc”中。
在列表中始终包含三个元素很容易,但是如何测试具有列表的所有对,例如包含15个元素?
答案 0 :(得分:2)
您可以使用set.issubset
,而成对配方可以使用itertools.tee
,但是map
不能工作,因为它不能解压缩参数,但是itertools.starmap
可以。
>>> example = ["aabbcc", "bca", "bc"]
>>> s, s1 = tee(map(set, example)); next(s1, None)
>>> list(starmap(set.issubset, zip(s, s1)))
[True, False]
>>> all(starmap(set.issubset, zip(s, s1)))
False