본문 바로가기
파이썬

파이썬 한 줄로 목록에있는 항목이 다른 목록에 있는지 확인 하시겠습니까?

by º기록 2021. 2. 16.
반응형

목록이 있다고 가정 해 보겠습니다. a=[1,2,3] And I want to know if at least one of the numbers in it exist in another list, like this one: b=[4,5,6,7,8,1] In other words, I want to know if 1,2 or 3 exist(s) in list b. 이제 다음과 같이 할 수 있습니다.

def func(a, b):
    for i in a:
       if i in b:
          return True
    return False

그러나 일을 정리하기 위해 한 줄에 넣는 방법이 있습니까?

 

해결 방법

 

이를 수행하는 방법에는 여러 가지가 있습니다. 가장 직접적인 번역은 다음과 같습니다.

any_in = lambda a, b: any(i in b for i in a)

다음과 같이 세트와 관련된 다양한 것을 사용할 수도 있습니다.

any_in = lambda a, b: bool(set(a).intersection(b))

(해시 가능한 a 의 요소에 따라 다르지만 사실이라면 a 에서 더 큰 집합을 만드는 것이 더 빠를 것입니다. b ).

편집 : 아래 여러 사람들이 언급했듯이 isdisjoint 가 Python 2.6 이상에서 intersection 보다 낫습니다. 그것에 대해 알게되어 기쁩니다. :)

 

참조 페이지 https://stackoverflow.com/questions/10668282

 

 

반응형

댓글