列表的Python问题(TypeError:“ NoneType”对象不可迭代)

时间:2018-11-25 19:06:44

标签: python python-3.x list

我有一个列表,我正在进行比较以检查该列表中是否存在某些值集,并返回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标志。谁能帮忙。谢谢

2 个答案:

答案 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。