[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