[Python] 순서 유지하며 두 리스트 교집합 구하기 (리스트컴프리핸션)

반응형

Python logo

Contents

이번엔 파이썬에서 두 리스트의 교집합순서를 유지 하여 구하는 간단한 코드를 보겠습니다.

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] 순서입니다.

* 출력

 

감사합니다.

다음에 더 유익한 글로 돌아오겠습니다.

 

* 위의 실습 코드는 아래 링크에 모두 정리되어 있습니다.

https://github.com/netsus/python_practice/blob/master/220322_python_intersection_of_ordered_lists.ipynb

 

GitHub - netsus/python_practice: basic python course

basic python course. Contribute to netsus/python_practice development by creating an account on GitHub.

github.com

 

Reference) 
1. https://m.blog.naver.com/inforsec0201/221413356652

 

 

 

 

반응형

댓글

Designed by JB FACTORY