Python kết hợp hai danh sách thành cặp

Hợp nhất danh sách có nghĩa là thêm hoặc nối danh sách này với danh sách khác. Nói một cách đơn giản, nó có nghĩa là nối hai danh sách. Chúng ta có thể sử dụng nhiều cách khác nhau để nối hai danh sách trong Python. Hãy để chúng tôi thảo luận về chúng dưới đây

1. Sử dụng hàm append[]

Một cách đơn giản và phổ biến để hợp nhất [nối] hai danh sách trong Python là sử dụng phương thức append[] dựng sẵn của python. Phương thức append[] trong python thêm một mục vào danh sách hiện có. Nó không trả về một danh sách các mục mới. Thay vào đó, nó sửa đổi danh sách ban đầu bằng cách thêm mục vào cuối danh sách

Mã số

# python program to demonstrate merging 
# of lists using python
def append_lists[]:
    #list 1
    ls1 = [1,2,3,4]
    #list 2
    ls2 = [5,6,7,8]
    
    #iterating over list2
    for i in ls2:
        #appending in list1
        ls1.append[i]
    print[ls1]

#function call    
append_lists[]

đầu ra

Giải trình

  • Trong đoạn mã trên, chúng tôi khai báo hai danh sách, ls1 và ls2
  • Chúng tôi lặp lại ls2 và nối các phần tử của nó vào ls1 bằng cách sử dụng phương thức append của python

2. Sử dụng Toán tử '+'

Đây là cách đơn giản nhất để hợp nhất hai danh sách trong Python. Toán tử '+' là toán tử đa năng, có thể được sử dụng cho các phép tính số học, cũng như cho mục đích hợp nhất, cho chuỗi, danh sách, v.v.

Mã số

#merge lists Using the '+' operator
def merge[]:
    #list 1
    ls1 = [15,20,35,40]
    #list 2
    ls2 = [99,44,13]
    #merging using '+' operator
    ls = ls1 + ls2
    print[ls]
    
#function call    
merge[]

đầu ra

Giải trình

  • Chúng tôi đã xác định danh sách của mình ls1 và ls2
  • Sau đó, chúng tôi đã hợp nhất chúng bằng toán tử '+' trong Python
  • Việc sử dụng toán tử + thêm toàn bộ danh sách này vào sau danh sách kia

3. Sử dụng danh sách hiểu

Chúng ta cũng có thể hợp nhất hai danh sách trong Python bằng cách sử dụng khả năng hiểu danh sách. Khả năng hiểu danh sách cung cấp cú pháp ngắn hơn và sắc nét hơn khi chúng tôi muốn tạo danh sách mới dựa trên các giá trị của danh sách hiện có. Nó cũng có thể được gọi là một giải pháp thay thế cho phương pháp vòng lặp

Mã số

def list_comprehension[]:
    num1=[1,2,3]
    num2=[4,5,6]
    #using list comprehension
    num3=[x for n in [num1,num2] for x in n]
    print[num3]
#function call    
list_comprehension[]

đầu ra

Giải trình

  • Trong ví dụ trên, đầu tiên, dòng này được thực thi cho n trong [num1,num2], sẽ trả về [[1, 2, 3], [4, 5, 6]]
  • Sau đó, chúng tôi chọn một yếu tố tại một thời điểm từ các danh sách trên. Do đó chúng tôi làm cho x trong n
  • Cuối cùng, chúng tôi nhận được kết quả mong muốn bằng cách lưu trữ giá trị của x trong danh sách. [x cho n trong [num1,num2] cho x trong n]

4. Sử dụng phương thức mở rộng[]

Phương thức mở rộng[] thêm tất cả các phần tử của một lần lặp [danh sách, bộ dữ liệu, chuỗi, v.v. ] đến cuối danh sách. Nó tự cập nhật danh sách ban đầu. Do đó kiểu trả về của nó là Không có. Nó có thể được sử dụng để hợp nhất hai danh sách trong Python

Mã số

def extend_lists[]:
    #list 1
    ls1 = [11,19,25,40]
    #list 2
    ls2 = [31,84,13]
    ls1.extend[ls2]
    print[ls1]
#function call    
extend_lists[]

đầu ra

Giải trình

  • Chúng tôi đã xác định danh sách của mình và chuyển chúng sang phương thức mở rộng của chúng tôi trong python
  • mở rộng về cơ bản, mở rộng list2 đến cuối list1. Kích thước của danh sách tăng theo độ dài của cả hai danh sách
  • Ngoài ra, hãy mở rộng cập nhật trực tiếp ls1 của chúng tôi

5. Sử dụng toán tử giải nén lặp lại *

Dấu hoa thị * biểu thị quá trình giải nén có thể lặp lại. Toán tử giải nén lấy bất kỳ loại có thể lặp lại nào [như danh sách, bộ dữ liệu, bộ, v.v. ] như một tham số. Sau đó, iterable được mở rộng thành một chuỗi các mục, được bao gồm trong bộ, danh sách hoặc bộ mới, tại vị trí giải nén

bất kỳ không. danh sách có thể được nối và trả về trong một danh sách mới bằng cách sử dụng toán tử này. Do đó, nó có thể được sử dụng để hợp nhất hai danh sách trong Python

Có rất nhiều trường hợp trong Python yêu cầu liên kết giữa hai hoặc nhiều trình vòng lặp, chẳng hạn như bộ dữ liệu, từ điển, danh sách và bộ. Nén là thuật ngữ python để ghép nối các trình vòng lặp như vậy. Trong bài viết này, cách python nén hai danh sách lại với nhau

Danh sách trong python giống như mảng có kích thước động, được khai báo bằng các ngôn ngữ khác [vector trong C++ và ArrayList trong Java]. Các danh sách không nhất thiết phải luôn đồng nhất, điều này khiến nó trở thành công cụ mạnh nhất trong Python. Để tìm hiểu thêm về danh sách python, hãy truy cập bài viết của chúng tôi "3 cách để tìm kích thước danh sách Python"

Sử dụng hàm zip thông thường, bạn có thể dễ dàng tổng hợp nội dung của lớp vùng chứa. Tuy nhiên, đôi khi, nhiều danh sách và danh sách chứa được yêu cầu làm thành phần chỉ mục và bạn phải hợp nhất chúng. Đây là một trường hợp kỳ lạ, nhưng giải pháp rất đơn giản. Vì vậy, hãy xem mọi thứ hoạt động như thế nào

Làm cách nào để nén hai danh sách trong Python?

Dưới đây là ba phương pháp mà python nén hai danh sách

1] Sử dụng chức năng zip[] tích hợp

Python sở hữu một bộ sưu tập phong phú các phương thức dựng sẵn, một trong số đó là hàm zip[]. Sử dụng hàm zip[], bạn có thể tạo một đối tượng iterator chứa các bộ dữ liệu [biết thêm về bộ dữ liệu tại "3 cách để chuyển đổi danh sách thành bộ dữ liệu trong Python"]. Có thể hữu ích khi nghĩ về hàm zip[] khi kết hợp hai hoặc nhiều danh sách [hoặc các đối tượng có thể lặp lại khác] thành một đối tượng chứa các bộ dữ liệu được sắp xếp từ . Ví dụ dưới đây cho thấy cách hàm zip[] có thể dễ dàng hợp nhất hai danh sách trong python mà không cần thêm bất kỳ nỗ lực nào.

Ví dụ

list_a = [1, 3, 4]
list_b = [5, 7, 11]

list_zip = zip[list_a, list_b]

zipped_list = list[list_zip]
print[zipped_list]

 

đầu ra

[[1, 5], [3, 7], [4, 11]]

 

2] Sử dụng map[] + __add__

map[] là một phương thức python được tạo sẵn khác tương tự như hàm zip[] ở trên. Nó cho phép bạn zip các phần tử của iterable bằng cách ánh xạ các phần tử của iterable đầu tiên với các phần tử của iterable thứ hai. Bằng cách sử dụng hàm map[] cùng với toán tử cộng, bạn có thể hợp nhất hai danh sách trong python như trong ví dụ bên dưới

list_1 = [[2, 3], [4, 5], [7, 6]]
list_2 = [[4, 9], [4, 2], [11, 10]]
  
print ["The given list 1 is : " + str[list_1]]
print ["The given list 2 is : " + str[list_2]]
  

res = list[map[list.__add__, list_1, list_2]]
      
print ["The zipped list is : " +  str[res]]

 

đầu ra

The given list 1 is : [[2, 3], [4, 5], [7, 6]]
The given list 2 is : [[4, 9], [4, 2], [11, 10]]
The zipped list is : [[2, 3, 4, 9], [4, 5, 4, 2], [7, 6, 11, 10]]

 

3] Sử dụng vòng lặp 'for' với hàm zip[]

Bạn cũng có thể nén hai danh sách trong python bằng cách kết hợp hàm zip[] và vòng lặp for. Đây là phương pháp ít được sử dụng nhất trong đó việc tổng hợp giữa các danh sách có thể được thực hiện bằng hàm chuỗi, trong khi việc tổng hợp các danh sách nội bộ có thể được thực hiện bằng hàm zip[]. Ở đây, bạn phải sử dụng hàm chain[] là một phần của thư viện itertools python và do đó, thư viện được nhập bằng từ khóa "nhập" trước khi bắt đầu mã nguồn. Kiểm tra ví dụ dưới đây để hiểu rõ hơn về phương pháp này

Ví dụ

________số 8

 

đầu ra

The given list 1 is : [[1, 3], [4, 5], [5, 6]]
The given list 2 is : [[11, 9], [16, 2], [4, 10]]
The zipped list is : [[1, 3, 11, 9], [4, 5, 16, 2], [5, 6, 4, 10]]

 

Tóm lược

Tóm lại, danh sách là cấu trúc dữ liệu được sử dụng nhiều nhất trong ngôn ngữ python và do đó gặp phải tình huống khó nén các phần tử trong khi lập trình. Trong bài viết này, chúng tôi đã nghiên cứu các phương pháp khác nhau để nén các phần tử của hai danh sách và bạn có thể sử dụng bất kỳ phần tử nào trong số chúng tùy theo các tình huống khác nhau mà bạn gặp phải khi mã hóa chương trình. Tuy nhiên, hàm zip[] được sử dụng nhiều và là phương pháp được khuyên dùng nhất để nén danh sách nhanh hơn và hiệu quả hơn

Bạn có thể cộng hai danh sách lại với nhau bằng Python không?

Có một số cách để tham gia hoặc nối hai hoặc nhiều danh sách trong Python. Một trong những cách dễ nhất là sử dụng toán tử + .

Làm cách nào để kết hợp hai danh sách thành một Tuple?

Cách Pythonic nhất để hợp nhất nhiều danh sách l0, l1,. , ln vào một danh sách các bộ [nhóm các phần tử thứ i lại với nhau] là sử dụng hàm zip[] zip[l0, l1,. , ln] . Nếu bạn lưu danh sách của mình trong danh sách danh sách lst , hãy viết zip[*lst] để giải nén tất cả danh sách bên trong vào hàm zip.

Chủ Đề