Cách nối danh sách trong Python

Cach Noi Danh Sach Trong Python



Danh sách Python là cấu trúc dữ liệu linh hoạt và được sử dụng rộng rãi, cho phép lưu trữ và thao tác với các bộ sưu tập các mục. Một thao tác phổ biến khi làm việc với danh sách là ghép nối bao gồm việc kết hợp hai hoặc nhiều danh sách để tạo một danh sách mới. Quá trình này đặc biệt hữu ích khi hợp nhất dữ liệu hoặc tạo danh sách lớn hơn từ danh sách nhỏ hơn. Việc nối danh sách có thể đạt được bằng nhiều phương pháp khác nhau và việc hiểu các kỹ thuật này là điều cơ bản để làm việc hiệu quả với các danh sách trong Python. Cho dù bạn đang hợp nhất danh sách số, chuỗi hay đối tượng phức tạp, việc thành thạo nối danh sách cho phép bạn thao tác và sắp xếp dữ liệu theo nhiều cách khác nhau.

Ví dụ 1: Ghép danh sách bằng toán tử “+”

Chúng ta có thể sử dụng toán tử “+” trong Python để nối các danh sách. Sử dụng toán tử “+”, bạn có thể nối hai hoặc nhiều danh sách để tạo thành một danh sách mới. Khi bạn sử dụng toán tử “+” với danh sách, một danh sách mới sẽ được tạo và các thành phần của danh sách gốc sẽ được sao chép sang danh sách mới theo thứ tự chúng xuất hiện.

Đây là một ví dụ đơn giản:







tờ 1 = [ 1 , 2 , 3 ]

danh sách2 = [ 4 , 5 , 6 ]

danh sách kết quả = danh sách1 + danh sách2

in ( danh sách kết quả )

Chúng ta có hai danh sách trong hình minh họa này: “list1” và “list2”. Chúng tôi sử dụng toán tử “+” để tích hợp chúng vào một danh sách duy nhất. Khi được sử dụng với các danh sách, toán tử “+” nối chúng lại, nghĩa là nó nối các phần tử của danh sách thứ hai với phần cuối của danh sách thứ nhất. Vì vậy, sau khi thực thi “result_list = list1 + list2”, “result_list” sẽ chứa các phần tử của cả “list1” và “list2” theo thứ tự chúng được nối.





Mặc dù phương pháp này ngắn gọn nhưng hãy nhớ rằng nó tạo ra một danh sách mới có thể không hiệu quả đối với các danh sách lớn do chi phí tạo bản sao quá cao.





Ví dụ 2: Sử dụng phương thức Extend()

Các mục của một iterable có thể được thêm vào cuối danh sách hiện có bằng phương thức Extend(). Nó sửa đổi danh sách ban đầu tại chỗ, không giống như toán tử “+” tạo danh sách mới.

Giả sử chúng ta có một danh sách học sinh trong một lớp và chúng ta muốn mở rộng danh sách này bằng cách thêm tên của những học sinh mới tham gia gần đây bằng phương thức Extend(). Đây là cách bạn có thể thực hiện:



lớp_sinh viên = [ 'Alice' , 'Bella' , 'Charlie' ]

các học sinh mới = [ 'David' , 'Eva' , 'Adam' ]

lớp_học sinh. mở rộng ( các học sinh mới )

in ( 'Danh sách học sinh cập nhật:' , lớp_sinh viên )

Trong ví dụ này, danh sách ban đầu là “class_students” chứa tên của các sinh viên hiện có. Danh sách “new_students” bao gồm tên của những học sinh mới tham gia lớp học. Bằng cách áp dụng phương thức Extend(), chúng ta thêm tên của các sinh viên mới vào cuối danh sách ban đầu.

Ví dụ 3: Áp dụng toán tử “+=” để ghép nối

Toán tử “+=” là cách viết tắt của phương thức Extend(). Nó sửa đổi danh sách tại chỗ, kết hợp các thành phần của danh sách bên phải vào danh sách bên trái.

Giả sử chúng ta có một danh sách các màu yêu thích và muốn cập nhật nó bằng cách thêm nhiều màu hơn bằng toán tử “+=”.

màu sắc ưa thích = [ 'màu xanh da trời' , 'màu xanh lá' , 'màu đỏ' ]

bổ sung_màu sắc = [ 'màu tím' , 'quả cam' , 'màu vàng' ]

yêu thích_colors + = bổ sung_màu sắc

in ( 'Cập nhật màu sắc yêu thích:' , màu sắc ưa thích )

Trong trường hợp này, chúng tôi bắt đầu với danh sách các màu yêu thích được biểu thị bằng “favorite_colors”. Sau đó, chúng tôi có một số màu mới mà chúng tôi muốn đưa vào danh sách “màu_bổ sung”. Bằng cách sử dụng toán tử “+=”, chúng tôi kết hợp các màu mới với các màu yêu thích hiện có, sửa đổi danh sách “favorite_colors”.

Sau thao tác, khi in “Màu sắc yêu thích đã cập nhật của chúng tôi”, chúng ta có thể thấy kết quả như sau:

Ví dụ 4: Sử dụng toán tử “*”

Toán tử “*” có thể được sử dụng để sao chép danh sách. Nhưng khi áp dụng cho danh sách, nó có thể nối chúng bằng cách lặp lại các phần tử.

Đây là một ví dụ:

danh sách gốc = [ 1 , 2 , 3 ]

danh sách nối = danh sách gốc * 3

in ( danh sách nối )

Trong trường hợp này, chúng ta bắt đầu với một “origin_list” chứa các phần tử [1, 2, 3]. Bằng cách sử dụng toán tử “*”, chúng ta tạo một danh sách mới là “concatenated_list” bao gồm ba lần lặp lại các phần tử từ danh sách ban đầu.

Mặc dù cách tiếp cận này ít phổ biến hơn đối với phép nối nhưng nó cho thấy tính linh hoạt của các toán tử trong Python.

Ví dụ 5: Áp dụng hàm Itertools.chain()

Hàm itertools.chain() là một phần của mô-đun “itertools” và được sử dụng để nối iterable (như danh sách, bộ dữ liệu hoặc các đối tượng có thể lặp khác) thành một “iterable” duy nhất. Không giống như một số phương thức nối khác, itertools.chain() không tạo danh sách mới mà tạo ra một trình vòng lặp trên các phần tử của các vòng lặp đầu vào.

từ itertools nhập khẩu xích

L1 = [ 1 , 2 , 3 ]

L2 = [ 'x' , 'Và' , 'Với' ]

concatenate_iterable = xích ( L1 , L2 )

danh sách kết quả = danh sách ( concatenate_iterable )

in ( danh sách kết quả )

Trong ví dụ đã cho, chúng ta có hai danh sách – “L1” chứa các giá trị số [1, 2, 3] và “L2” chứa các ký tự chữ cái [“x”, “y”, “z”]. Bằng cách sử dụng hàm itertools.chain(), chúng tôi ghép các danh sách này thành một iterable duy nhất, được biểu thị bằng “concatenated_iterable”. Sau đó, hàm list() được áp dụng để chuyển đổi iterable thành một danh sách dẫn đến danh sách kết hợp [1, 2, 3, “x”, “y”, “z”].

Ví dụ 6: Cắt danh sách

Bằng cách cung cấp một loạt các chỉ mục, cắt danh sách là một kỹ thuật cho phép chúng ta truy xuất một tập hợp con của danh sách. Nó liên quan đến việc sử dụng toán tử dấu hai chấm (:) trong dấu ngoặc vuông để biểu thị các giá trị bắt đầu, dừng và, tùy chọn, các bước.

Đây là mã ví dụ:

danh sách thực tế = [ 1 , 2 , 3 , 4 , 5 ]

danh sách cắt lát = danh sách thực tế [ 1 : 4 ]

in ( danh sách cắt lát )

Chúng ta bắt đầu minh họa bằng một danh sách ban đầu gồm các số được ký hiệu là “actual_list” chứa các phần tử [1, 2, 3, 4, 5]. Chúng tôi trích xuất một phân đoạn cụ thể của danh sách bằng cách sử dụng tính năng cắt danh sách, đây là một tính năng mạnh mẽ trong Python. Lát “actual_list[1:4]” được sử dụng trong trường hợp này và nó chọn các phần tử từ chỉ mục 1 đến chỉ mục 3 (nhưng không phải từ chỉ mục 4). Kết quả là một danh sách mới, có tên là “sliced_list”, chứa phần được cắt lát [2, 3, 4].

Ví dụ 7: Ghép hàm Zip()

Hàm zip() kết hợp các phần tử từ nhiều lần lặp, tạo ra các cặp hoặc bộ phần tử tương ứng. Các phần tử của mỗi lần lặp có cùng chỉ mục được sử dụng để tạo các cặp này.

sinh viên = [ 'Alice' , 'Bob' , 'Charlie' ]

điểm = [ 85 , 92 , 78 ]

học sinh_lớp_cặp = zip ( sinh viên , điểm )

kết quả_dict = mệnh lệnh ( học sinh_lớp_cặp )

in ( 'Cặp cấp học sinh:' , kết quả_dict )

Trong ví dụ này, hàm zip() ghép tên học sinh từ danh sách “học sinh” với điểm tương ứng của họ từ danh sách “điểm”, dẫn đến một từ điển trong đó mỗi học sinh được liên kết với điểm tương ứng của họ.

Phần kết luận

Tóm lại, Python cung cấp vô số cách để nối các danh sách, mỗi cách đều có ưu điểm riêng. Khi chúng ta khám phá các phương thức khác nhau, từ toán tử “+” đơn giản đến hàm zip() phức tạp hơn, rõ ràng là Python phục vụ cho các phong cách và sở thích lập trình đa dạng. Tùy thuộc vào công việc hiện tại, các yếu tố như khả năng đọc, hiệu quả bộ nhớ và loại dữ liệu đang được xử lý sẽ xác định phương pháp nào là tốt nhất.