我有两个列表l1和l2,它们具有不同类型的元素,如下所示:
l1 = [1,2,3,'4']
l2 = [1,2]
我想对l1中不在l2中且不是string类型的每个元素进行计算。所以我想知道是否有可能以某种方式隔离列表理解中的整数和字符串。
首先,下面是一个示例,其中如果e不位于l2中,则将l1中的每个元素e添加到自身:
# code
r = [e+e for e in l1 if e not in l2]
print(r)
# result
# [6, '44']
由于它是字符,因此这里重复“ 4”,而不添加,但我想忽略该元素。所以我在想我可以隔离类型为(e)== int的元素。
天真的尝试:
# code
r = [e+e for e in l1 if type(e)==int not in l2]
# output
[2, 4, 6]
在这里,l1中的'4'似乎被忽略了,因为它不是整数,但是即使不是l2中的3也被加到了自身上。
这是怎么回事(除了我不理解列表理解之外的事实)?
犯罪嫌疑人X
一只甜甜圈
catspeake
相关分类