본문 바로가기
Python/Python FAQ

Python 다른 목록에서 한 목록에 있는 모든 요소를 제거하세요., Remove all the elements that occur in one list from another

by 베타코드 2023. 9. 14.
반응형

질문


두 개의 리스트 l1l2가 있다고 가정해봅시다. l1 - l2를 수행하고 싶은데, 이는 l2에 없는 l1의 모든 요소를 반환합니다.

이를 위해 무식한 반복문 접근 방식을 생각할 수는 있지만, 이는 매우 비효율적일 것입니다. 이를 파이썬다운 방식으로 효율적으로 수행하는 방법은 무엇일까요?

예를 들어, l1 = [1,2,6,8]이고 l2 = [2,3,5,8]일 때, l1 - l2[1,6]을 반환해야 합니다.


답변


파이썬에는 이러한 작업을 매우 쉽게 수행 할 수있는 리스트 컴프리헨션(List Comprehensions)이라는 언어 기능이 있습니다. 다음 문장은 원하는 작업을 정확히 수행하고 결과를 l3에 저장합니다:

l3 = [x for x in l1 if x not in l2]

l3에는 [1, 6]이 포함됩니다.

반응형

댓글