파이썬에서 두 개 또는 여러 개의 목록을 연결하는 방법

  1. 파이썬에서 두리스트를 연결하는+
  2. + =는 파이썬에서 두 목록을 연결합니다
  3. itertools.chain 메소드는 파이썬에서 두 목록을 연결합니다
  4. 파이썬에서리스트를 연결하는 extend()메소드
  5. [* a, * b]파이썬리스트 연결에서 언 패킹 방법
  6. 결론

Python 의 목록은 순서가 지정된 요소 컬렉션을 보유하는 데이터 구조입니다.

두 목록을 함께 붙이는 작업을 ** 연결 **이라고합니다. ** in-place ** 또는 ** out-of-place **로 파이썬에서 두 개의 목록을 연결할 수 있습니다.

연결할 두 개의 목록이 있다고 가정합니다.

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]

우리는 그것들을 연결하는 여러 가지 방법을 가질 수 있지만 길이가 증가하거나 연결된 목록의 수가 증가하면 성능이 다릅니다.

이러한 다양한 방법을 소개하고 성능 비교를 제공합니다.

파이썬에서 두리스트를 연결하는+

+연산자는 두리스트를 연결하고 새로운리스트를 반환 할 수 있습니다.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = list1 + list2
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]

+ =는 파이썬에서 두 목록을 연결합니다

+ =는 위의 방법과 비슷하지만 첫 번째 목록의 데이터가 변경됩니다.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1 += list2
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]

itertools.chain 메소드는 파이썬에서 두 목록을 연결합니다

itertools 모듈의 chain 연속 시퀀스를 하나의 단일 시퀀스로 처리,

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> import itertools
>>> result = list(itertools.chain(list1, list2))
[1, 2, 3, 4, 5, 6, 7, 8]
정보

itertools.chain 에는 대체 생성자 인 intertools.chain.from_iterable()이 있습니다. 입력이 느리게 평가되는 반복 가능한 단일 인수가 있습니다.

파이썬에서리스트를 연결하는 extend()메소드

List extend 메소드는 iterable 에서 요소를 추가하여 list 를 확장합니다.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1.extend(list2)
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]

또한 새 목록을 반환하지 않고 기존 목록의 데이터를 그 자리에서 변경합니다.

[* a, * b]파이썬리스트 연결에서 언 패킹 방법

PEP-0448에 설명 된대로 반복 가능한 압축 풀기 연산자의 경우*및 사전 압축 풀기 연산자의**와 같은 추가 압축 풀기 기능이 Python 3.5에서 확장되었습니다.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = [*list1, list2]
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]

이 방법은 각 목록의 포장을 수동으로 풀지 않으면 N 목록의 경우에 적용 할 수 없습니다.

경고

반복 포장 풀기는 아래에 설명 된대로 이해하기에는 사용할 수 없습니다.

>>> A = [1,2,3]
>>> B = [4,5,6]
>>> C = [7,8,9]
>>> [*t for t in [A,B,C]]
SyntaxError: iterable unpacking cannot be used in comprehension

결론

                                버전 그 자리에?
a + b - 아니
list(intertools.chain(a, b)) > = 2.3 아니
[* a, * b] > = 3.5 아니
a + = b -
a. 연장(b) -

위의 방법 중 perfplot 모듈을 사용하여 성능을 비교

파이썬리스트 연결 방법 성능 비교

그래프에서 알 수 있듯이 a.extend(b)a + b 메소드는 성능이 거의 동일하며 모든 메소드 중에서 가장 우수합니다. list(chain (a, b))메소드의 성능이 가장 낮습니다.

관련 문장 - Python List

  • 추가 및 확장 목록 방법의 차이점은 무엇입니까
  • Python의 목록에서 고유 한 값을 얻는 방법