有两个列表
a= [1,2,3]
b = [1,2,3]
现在我想要在Python中使用一行代码来检查
a
中的元素是否存在于b
中。我可以在
a
上使用循环,然后检查它是否存在于b
中。但是我想要一些Pythonic的方式(一行代码)。有两个列表
a= [1,2,3]
b = [1,2,3]
a
中的元素是否存在于b
中。a
上使用循环,然后检查它是否存在于b
中。但是我想要一些Pythonic的方式(一行代码)。bool(set(a)&set(b))
将 a
和 b
转换为集合,然后在它们上应用 交集运算符 (&
)。然后在结果集上应用 bool,如果集合为空(没有共同元素),则返回 False
,否则返回 True
(集合不为空且有共同元素)。
不使用集合: any(True for x in a if x in b)
。 any()
如果任一元素为真,则返回 True,否则返回 False。
bool()
,就会返回共同元素的集合;您可以使用 len(the_set)
了解元素数量。 - Ramchandra Apteset
?有什么特殊原因吗?我的意思是,我也可以使用 a and b
。 - Praful Bagai我认为你应该使用集合。以下是如何实现:
def check_element(a, b):
return not set(a).isdisjoint(b)
len(set(a+b)) < len(set(a)) + len(set(b))
any(a) in b
是什么意思? - vahid abdiany(a)
返回 True(1)或 False(0),而这个值不在 b 中。 - vahid abdi