繁体   English   中英

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

[英]How do I print elements of one list that are in another list?

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

但我想在两个列表中都熟悉这些数字。

您可以有条件地仅取bad

c = [d for d in b if d in a]
# Here -----------^

让我们看一下这段代码: [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]的结果[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]

您可以使用一set来比较值,但是我不认为这可以保留顺序:

c = set(a) & set(b)
print('\n'.join(str(i) for i in c))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM