2013-11-27 49 views
2

有2列表检查列表中的项目是否在另一个列表中存在或不蟒蛇

a= [1,2,3] 
b = [1,2,3] 

现在我要检查从a一个元素是否在b存在或不蟒蛇一个班轮

我可以在a上使用循环,然后检查它是否存在于b中。但我想要一些pythonic方式(单线)。

+0

一个衬垫并不总是意味着它是Python的。 –

+0

'b'中的任何(a)' –

+0

同意。但我知道我可以将它转换为python中的单线程,而不是使用循环。 – PythonEnthusiast

回答

2

bool(set(a)&set(b))ab转换成集合,然后在其上应用intersection operator&)。然后将bool应用于结果集合,如果集合为空(无公共元素),则返回False,否则返回True(集合非空且具有公共元素)。

没有使用套:any(True for x in a if x in b)any()如果任何一个元素为真,则返回True,否则返回False。

+0

它是做什么的?请解释。 – PythonEnthusiast

+0

@ user1162512更新了它;我在添加信息时看到了您的评论。 –

+0

我想从存在于'b'中的'a'获取该元素。我怎样才能做到这一点? – PythonEnthusiast

2

我认为你应该使用套。这是你可以做的方式:

def check_element(a, b): 
    return not set(a).isdisjoint(b) 
0
len(set(a+b)) < len(set(a)) + len(set(b)) 
相关问题