반응형
이번엔 파이썬에서 두 리스트의 교집합을 순서를 유지 하여 구하는 간단한 코드를 보겠습니다.
1. 전체 코드
a = [1,2,3,4,5]
b = [5,4,3]
c = [3,4,5]
[_ for _ in a if _ in c] # a순서 기준
# Output: [3, 4, 5]
[_ for _ in b if _ in c] # b순서 기준
# Output: [5, 4, 3]
2. a 순서 기준
a = [1,2,3,4,5]
c = [3,4,5]
[_ for _ in a if _ in c]
a 리스트 순서를 기준으로 해서, c 리스트와 교집합을 구하는 코드입니다.
리스트 컴프리핸션 내에서 _(언더바) 변수는 다른 변수와 겹치지 않고, 저 순간에만 간단히 사용함을 의미합니다.
(리스트 컴프리핸션에 대한 기초개념은 아래 글에 간단히 설명되어 있습니다.)
[Python의 꽃] 리스트 컴프리헨션(List Comprehension)
* 출력
3. b순서 기준
b = [5,4,3]
c = [3,4,5]
[_ for _ in b if _ in c]
위 2. 에서는 리스트 a와 리스트 c의 순서가 동일했습니다.
이번엔 순서가 다른 리스트 b와 리스트 c의 교집합을, b의 순서를 기준으로 구해보겠습니다.
b와 c 모두 3, 4, 5로 이루어져있고, b의 순서가 5, 4, 3 순서이니, b 순서 기준 교집합 리스트는 [5, 4, 3] 순서입니다.
* 출력
감사합니다.
다음에 더 유익한 글로 돌아오겠습니다.
* 위의 실습 코드는 아래 링크에 모두 정리되어 있습니다.
Reference)
1. https://m.blog.naver.com/inforsec0201/221413356652
반응형
'Programming > Python 꿀팁' 카테고리의 다른 글
[Python] 현재시간 출력 및 포맷팅 방법 (time, datetime library) (0) | 2022.04.04 |
---|---|
[Python] 딕셔너리 리스트 Key 순서 정렬 (sort list of dictionary) (2) | 2022.03.25 |
[Python] 문자열을 코드로 (eval, exec 사용법) (0) | 2021.07.27 |
[Python] 코드 병렬처리 (백그라운드 실행) (0) | 2020.12.15 |
필터 걸린 엑셀 python에서 사용하는 방법 (0) | 2020.11.10 |