python 통합 목록의 8가지 방법

4929 단어 python병합목록
Python 언어에는 많은 고급 특성이 있는데, Python 마니아들이 매우 좋아한다.이들의 눈에는 일반 개발자들이 알아볼 수 없는 고급 특성을 쓸 수 있는 고수, 즉 대신이다.
하지만 팀워크에서 뽐내는 것은 금물이라는 것을 알아야 한다.
왜 그랬을까?나는 자신의 견해를 말했다.
  • 간결한 코드일수록 명확한 논리가 틀리기 쉽다
  • 팀워크에서 당신의 코드는 당신만 유지하는 것이 아니라 다른 사람의 코드 논리를 읽고 이해하는 비용을 낮추는 것이 좋은 품성이다
  • 간단한 코드는 가장 기본적인 문법 설탕만 사용하고 복잡한 고급 특성은 더욱 의존할 수 있다(예를 들어 언어의 버전)
  • 1. 가장 직관적인 덧붙이기


    + 를 사용하여 여러 목록을 추가하면 알 거예요. 더 이상 말하지 마세요.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> list03 = [7,8,9]
    >>>
    >>> list01 + list02 + list03
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> 

    2. itertools를 빌려


    itertools는 파이썬에 매우 강력한 내장 모듈을 가지고 있으며, 교체 가능한 대상을 조작하는 데 전문적으로 사용된다.
    앞의 문장에서도 소개하였고, 사용하였다itertools.chain() 함수는 먼저 교체 대상(여기서 가리키는 것은 목록)을 직렬로 연결하여 더욱 큰 교체 대상을 구성한다.
    마지막으로list를 이용해서 목록으로 바꾸세요.
    
    >>> from functools import chain
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> list03 = [7,8,9]
    >>>
    >>> list(chain(list01, list02, list03))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>>

    3. *를 사용하여 패키지 해제


    * 를 사용하여 목록을 패키지화합니다.* 및 **는 함수 정의에 자주 사용되며 가변 매개변수를 설정합니다.
    지금 나는 그것을 단독으로 꺼내서 여러 목록의 합병에 사용한다.
    예는 다음과 같습니다.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>>
    >>> [*list01, *list02]
    [1, 2, 3, 4, 5, 6]
    >>>

    4. extend 사용


    사전에서 업데이트를 사용하면 제자리 업데이트를 할 수 있고, 목록에서 extend를 사용하면 목록의 자기 확장을 할 수 있습니다.
    
    >> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>>
    >>> list01.extend(list02)
    >>> list01
    [1, 2, 3, 4, 5, 6]

    5. 목록 유도식 사용하기


    Python에는 목록, 집합, 사전을 생성하는 데 매우 Pythonnic적인 작법이 있다.
    그것이 바로 목록 해석식, 집합 해석식과 사전 해석식이다. 통상적으로Python 마니아들이 가장 좋아한다. 그러면 오늘의 주제: 목록 통합, 목록 유도식은 감당할 수 있을까?
    예제 코드는 다음과 같습니다.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> list03 = [7,8,9]
    >>>
    >>> [x for l in (list01, list02, list03) for x in l]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>>

    6. heapq 사용


    Heapq는Python의 표준 모듈로 정렬 알고리즘의 실현을 제공합니다.
    이 모듈에는 여러 개의 목록을 통합하는 merge 방법이 있습니다. 아래와 같습니다.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> list03 = [7,8,9]
    >>>
    >>> from heapq import merge
    >>>
    >>> list(merge(list01, list02, list03))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> 
    주의해야 할 것은,heapq.merge는 여러 개의 목록을 통합하는 것 외에 통합된 최종 목록을 정렬합니다.
    
    >>> list01 = [2,5,3]
    >>> list02 = [1,4,6]
    >>> list03 = [7,9,8]
    >>> 
    >>> from heapq import merge
    >>> 
    >>> list(merge(list01, list02, list03))
    [1, 2, 4, 5, 3, 6, 7, 9, 8]
    >>> 
    그것의 효과는 아래의 줄 코드와 같다.
    
    sorted(itertools.chain(*iterables))
    만약 당신이 시종일관 질서정연한 목록을 원한다면, 가장 먼저 heapq를 생각해 보세요.merge, 무더기 정렬을 사용하기 때문에 효율이 매우 높습니다.그러나 정렬된 목록을 원하지 않는다면 사용하지 마세요.

    7. 마법을 빌리는 방법


    마법 방법을 이용__add__,실제로 우리가 첫 번째 방법인list01+list02를 사용할 때 내부는 사실상 __에 작용한다add__ 이 마법법상의
    그래서 다음 두 가지 방법은 사실 등가입니다.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> 
    >>> list01 + list02
    [1, 2, 3, 4, 5, 6]
    >>> 
    >>> 
    >>> list01.__add__(list02)
    [1, 2, 3, 4, 5, 6]
    >>> 
    이 마법 특성을 빌려 여러 개의 목록을 통합할 수 있습니다. 예시 코드는 다음과 같습니다.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> list03 = [7,8,9]
    >>>
    >>> from functools import reduce
    >>> reduce(list.__add__, (list01, list02, list03))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>>

    8. yield from 사용


    yieldfrom 뒤에 교체 가능한 대상을 연결할 수 있습니다. 그 중의 모든 요소를 교체하고 되돌려줍니다.
    따라서, 우리는 아래와 같이 목록을 통합하는 도구 함수를 사용자 정의할 수 있다.
    
    >>> list01 = [1,2,3]
    >>> list02 = [4,5,6]
    >>> list03 = [7,8,9]
    >>>
    >>> def merge(*lists):
    ...   for l in lists:
    ...     yield from l
    ...
    >>> list(merge(list01, list02, list03))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>>
    여기 보니까 자세가 올라갔는지 이렇게 오랫동안 파이썬을 배웠는데 리스트를 합치는 방법이 이렇게 많을 줄 몰랐어요.이 글의 취지는 7가지 합병 목록을 모두 파악하는 방법이 아니라, 사실상 가장 손쉬운 방식을 선택하면 된다.
    그러나 협동 작업 중이나 다른 사람의 코드를 읽을 때 다양한 글쓰기를 피할 수 없다. 이때 이것은 목록을 통합하는 조작이라는 것을 의식적으로 알 수 있다. 그러면 이 글은 의미가 있다.
    이상은python 연결 목록의 8가지 방법에 대한 상세한 내용입니다.python 연결 목록에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기