반응형
목록이 있다고 가정 해 보겠습니다.
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 목록의 모든 요소가 조건과 일치하는지 확인하는 방법은 무엇입니까? (0) | 2021.02.16 |
---|---|
파이썬은 재귀를 사용하지 않고 숫자 집합을 제외하는 난수를 생성 할 수 있습니까? (0) | 2021.02.16 |
파이썬 Python을 사용하여 3D 배열 만들기 (0) | 2021.02.16 |
파이썬 URL에서 최상위 도메인 이름 (TLD)을 추출하는 방법 (0) | 2021.02.16 |
파이썬 Paramiko "알 수없는 서버" (0) | 2021.02.15 |
댓글