python 통합 목록의 8가지 방법
하지만 팀워크에서 뽐내는 것은 금물이라는 것을 알아야 한다.
왜 그랬을까?나는 자신의 견해를 말했다.
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 연결 목록에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.