我有一个列表,我正在进行比较以检查该列表中是否存在某些值集,并返回true或false。
以下是我尝试过的内容:
l1 = ['apples,oranges,bananas,pears'] <<- list 1
l2 = ['apples,'tomatoes'] <<- list 2
b2 = set(l1).intersection(l2) <<- comparing the 2 lists
执行上述操作时出现错误:
TypeError: 'NoneType' object is not iterable
我相信上面的错误意味着没有数据,但是我知道第二个列表(l2)确实有一个值。即使列表中的一个值匹配,我也希望获得True标志。谁能帮忙。谢谢
答案 0 :(得分:3)
按如下所示创建您的列表:
In [369]: l1 = ['apples','oranges','bananas','pears']
In [357]: l2 = ['apples','tomatoes']
然后进行交点:
In [370]: set(l1).intersection(l2)
Out[370]: {'apples'}
答案 1 :(得分:2)
在两个列表中您都忘记了引号。
l1 = ['apples', 'oranges', 'bananas', 'pears']
l2 = ['apples','tomatoes']
b2 = set(l1).intersection(set(l2))
为了详细说明,在示例中,您要比较的是字符串“苹果,橙子,香蕉,豌豆”,“苹果”,“西红柿”(提供了一个引号,否则将无法编译)。显然,这些集合的交集为空集合。这就是你得到的,imo。