하나 이상의 요소가 목록 내에 있는지 확인하는 것은 일반적인 작업입니다. 정교한 함수를 고안하는 대신 다음과 같은 간결한 접근 방식을 활용할 수 있습니다.
파이썬 or 연산자는 인수를 순차적으로 평가하여 첫 번째 진실 또는 비어 있지 않은 값을 반환합니다. 이것이 해결책처럼 보일 수 있지만 목록의 경우에는 부족합니다. 위에서 설명한 것처럼 a의 (1 또는 2)는 False로 평가되고 a의 (2 또는 1)은 True로 평가됩니다. 이는 부울 컨텍스트에서 1이 False로 평가되어 a에서 표현식이 False와 동일해지기 때문에 발생합니다.
보다 효율적이고 읽기 쉬운 방법은 목록 이해 또는 교차 집합을 사용하는 것입니다. 목록 이해를 사용하면 두 번째 목록의 존재 여부에 따라 첫 번째 목록의 요소를 필터링할 수 있습니다. 예를 들어:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2] # Returns [2]
또는 목록을 집합으로 변환하고 집합 교집합을 수행하고 결과 집합의 부울 값을 활용할 수 있습니다. 이 접근 방식은 중복 요소를 효율적으로 처리할 때 유리합니다.
S1 = set(L1) S2 = set(L2) S1.intersection(S2) # Returns set([2])
빈 목록과 빈 세트 모두 False로 평가되므로 부울 논리를 사용하여 직접 존재 여부를 평가할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3