如何打印一个列表中另一个列表中的元素?

时间:2018-09-23 09:55:44

标签: python list list-comprehension

我有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]

但是我想要两个列表中都熟悉的数字。

3 个答案:

答案 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将返回TrueFalse,因为它等于

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))