我有2个具有几个相似值的列表,我想要打印出仅在两个列表中都存在的值。 我尝试了列表理解,但它给了我一个布尔列表:
a=[2,3,1,5,7]
b=[2,5,9,3,5,10]
c=[d in a for d in b]
print (c)
由此我得到以下结果:
[True, True, False, True, True, False]
但是我想要两个列表中都熟悉的数字。
答案 0 :(得分:3)
您只能有条件地从d
中提取a
中的b
:
c = [d for d in b if d in a]
# Here -----------^
答案 1 :(得分:1)
让我们看看下面的代码:[d in a for d in b]
,d in a
将返回True
或False
,因为它等于
if d in a:
return True
else:
return False
所以[d in a for d in b]
的结果是[True, True, False, True, True, False]
想要两个列表中熟悉的数字 的最佳方法是:
a=[2,3,1,5,7]
b=[2,5,9,3,5,10]
print(list(set(a) & set(b))) # [2, 3, 5]
答案 2 :(得分:0)
您可以使用set
来比较值,但是我认为这不会保留顺序:
c = set(a) & set(b)
print('\n'.join(str(i) for i in c))