파이썬에서 두 개 또는 여러 개의 목록을 연결하는 방법
-
파이썬에서 두리스트를 연결하는
+
-
+=
는 파이썬에서 두 목록을 연결합니다 -
itertools.chain
메소드는 파이썬에서 두 목록을 연결합니다 -
파이썬에서리스트를 연결하는
extend()
메소드 -
[*a, *b]
파이썬리스트 연결에서 언 패킹 방법 - 결론
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))
메소드의 성능이 가장 낮습니다.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub