import itertools
a=list(itertools.product("12X",repeat=15))
b=list(itertools.product("1X",repeat=15))
print("a len = ",len(a))
print("b len = ",len(b))
for x in b:
if x in a:
a.remove(x)
import itertools
a=list(itertools.product("123",repeat=3))
b=list(itertools.product("12",repeat=3))
print("a len = ",len(a))
print("b len = ",len(b))
c = set(a) - set(b)
print(len(c))
# This is the equivalent of
c = set(a).difference(set(b))
>>> a len = 27
>>> b len = 8
>>> 19
2条答案
按热度按时间t30tvxxf1#
把列表转换成集合,然后做减法。
您也可以执行
set(a).intersection(set(b))
,以便返回同时出现在两个列表中的对象。如果顺序很重要,就使用列表解析:
确保在解析之外计算
set(b)
一次,而不是在not in
检查中内联它,这样会在每次迭代时计算它。g0czyy6m2#
您可以尝试以下操作: