logo

Python에서 두 개의 목록 병합

서로 다른 방법을 사용하여 두 목록을 연결하는 방법을 살펴보겠습니다. 파이썬 . 이 작업은 비슷한 방식으로 처리해야 하는 요소 목록이 많을 때 유용합니다.

  Input:    test_list1 = [1, 4, 5, 6, 5]  test_list2 = [3, 5, 7, 2, 5]   Output:    [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]   Explanation:   The output list is the list we get from Merging both the input list.>

Python 두 목록 결합

이 기사에서 다룰 방법은 다음과 같습니다.

np.log

Python에서 두 목록을 병합합니다. 순진한 방법 사용

이 방법에서는 두 번째 목록을 순회하고 첫 번째 목록에 요소를 계속 추가하여 첫 번째 목록이 두 목록의 모든 요소를 ​​갖게 되므로 다음 작업을 수행합니다. 첨부하다.



파이썬3




# Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using naive method to concat> for> i>in> test_list2 :> >test_list1.append(i)> # Printing concatenated list> print> (>'Concatenated list using naive method : '> >+> str>(test_list1))>

>

>

산출

Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

시간 복잡도: O(n + m), 여기서 n과 m은 각각 주어진 test_list1과 test_list2의 길이입니다.
보조 공간: 오(m)

+ 연산자를 사용하여 두 목록 연결

목록 연결을 수행하는 가장 일반적인 방법은 + 연산자 한 목록 전체를 다른 목록 뒤에 쉽게 추가하여 다음 작업을 수행할 수 있습니다. 연쇄.

파이썬3




# Initializing lists> test_list3>=> [>1>,>4>,>5>,>6>,>5>]> test_list4>=> [>3>,>5>,>7>,>2>,>5>]> # using + operator to concat> test_list3>=> test_list3>+> test_list4> # Printing concatenated list> print> (>'Concatenated list using + : '> >+> str>(test_list3))>

>

>

산출

Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

시간 복잡도: O(n), 여기서 n은 두 목록의 총 요소 수입니다. + 연산자는 두 목록의 모든 요소를 ​​반복하여 연결하기 때문입니다.
보조 공간: O(n), 여기서 n은 두 목록의 총 요소 수입니다. 연결된 목록을 저장하기 위해 새 목록이 생성되기 때문입니다.

목록 이해를 사용하여 Python에서 두 목록 병합

목록 이해 목록 연결 작업도 수행할 수 있습니다. 이 경우 새 목록이 생성되지만 이 방법은 위에서 설명한 루프 방법에 대한 한 줄짜리 대안입니다.

파이썬3




# Python3 code to demonstrate list> # concatenation using list comprehension> # Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using list comprehension to concat> res_list>=> [y>for> x>in> [test_list1, test_list2]>for> y>in> x]> # Printing concatenated list> print> (>'Concatenated list using list comprehension: '> >+> str>(res_list))>

>

>

산출

Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

시간 복잡도: O(n + m), 여기서 n과 m은 주어진 test_list1과 test_list2의 길이입니다.
보조 공간: O(k), 여기서 k는 res_list의 길이입니다.

Extension()을 사용하여 두 목록을 병합합니다.

그만큼 연장하다() 는 Python에서 목록으로 확장된 함수이므로 이 작업을 수행하는 데 사용할 수 있습니다. 이 함수는 첫 번째 목록의 내부 확장을 수행합니다.

파이썬3




# Python3 code to demonstrate list> # concatenation using list.extend()> # Initializing lists> test_list3>=> [>1>,>4>,>5>,>6>,>5>]> test_list4>=> [>3>,>5>,>7>,>2>,>5>]> # using list.extend() to concat> test_list3.extend(test_list4)> # Printing concatenated list> print> (>'Concatenated list using list.extend() : '> >+> str>(test_list3))>

>

>

산출

Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Python * 연산자를 사용하여 두 목록 결합

* 연산자를 사용하는 이 방법은 목록 연결에 새로 추가되었으며 Python 3.6 이상에서만 작동합니다. 아니오. 이 연산자를 사용하면 개 목록을 연결하여 새 목록으로 반환할 수 있습니다.

파이썬3




# Python3 code to demonstrate list> # concatenation using * operator> # Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using * operator to concat> res_list>=> [>*>test_list1,>*>test_list2]> # Printing concatenated list> print> (>'Concatenated list using * operator : '> >+> str>(res_list))>

>

>

산출

Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

Python itertools.chain()을 사용하여 두 목록 결합

그만큼 itertools.체인() 인수를 하나로 묶은 후 반복 가능한 항목을 반환하므로 초기 반복만 필요한 경우 연결된 목록을 저장할 필요가 없습니다. 이는 연결된 목록을 한 번만 사용해야 하는 경우에 유용합니다.

파이썬3




# Python3 code to demonstrate list> # concatenation using itertools.chain()> import> itertools> # Initializing lists> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> # using itertools.chain() to concat> res_list>=> list>(itertools.chain(test_list1, test_list2))> # Printing concatenated list> print> (>'Concatenated list using itertools.chain() : '> >+> str>(res_list))>

YouTube 비디오 VLC를 다운로드하는 방법

>

>

산출

Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

두 목록 연결 Reduce() 함수를 사용하여

먼저 다음에서 축소 함수를 가져와야 합니다. 기능 도구 도서관. 그런 다음 두 개의 서로 다른 목록을 보유하는 두 개의 변수를 초기화합니다. 이제 이전 단계에서 가져온 모든 목록을 저장할 또 다른 목록을 사용하겠습니다. 중첩된 목록을 구성해야 합니다. 이제 축소() 함수를 사용하고 해당 중첩 목록을 두 변수와 함께 매개변수로 전달합니다(두 개의 목록을 선택하는 경우). 그리고 익명 기능을 사용하세요 람다 연결 작업을 수행하고 목록에 저장합니다.

파이썬3




from> functools>import> reduce> test_list1>=> [>1>,>4>,>5>,>6>,>5>]> test_list2>=> [>3>,>5>,>7>,>2>,>5>]> nested_list>=> [test_list1,test_list2]> print>(>reduce>(>lambda> i,j:i>+>j,nested_list,[]))>

>

>

산출

[1, 4, 5, 6, 5, 3, 5, 7, 2, 5]>

시간 복잡도: O(n+m), n은 첫 번째 목록의 길이이고, m은 두 번째 목록의 길이입니다.
보조 공간: O(n), n은 고려되는 목록의 수입니다.