Hợp nhất nhiều danh sách thành một danh sách Python

Một trong những cấu trúc dữ liệu quan trọng nhất được sử dụng trong Python là danh sách. Nó có nhiều trường hợp sử dụng khác nhau trong Python vì nó có thể thay đổi, có thể chứa các giá trị của bất kỳ loại dữ liệu nào khác trong cùng một danh sách. Ngoài ra, chúng ta có thể có một phần tử có giá trị bằng nhau nhiều lần (điều này không thể thực hiện được trong các tập hợp) và được hỗ trợ bởi nhiều phương thức khác nhau, điều này giúp cuộc sống của chúng ta dễ dàng hơn rất nhiều. Trong Python, chúng ta có thể kết hợp nhiều danh sách thành một mà không gặp bất kỳ rắc rối nào

Trong bài viết này, chúng ta hãy khám phá nhiều cách để đạt được các danh sách nối. Một số thuật ngữ tiêu chuẩn khác là nối danh sách, hợp nhất danh sách và nối danh sách

  1. Sử dụng Phương pháp Naïve để kết hợp các danh sách trong python
  2. Sử dụng chức năng mở rộng của Python
  3. Chức năng nối thêm
  4. Sử dụng toán tử +
  5. hiểu danh sách
  6. Sử dụng toán tử *
  7. Sử dụng itertools. chuỗi()
  8. Kết hợp danh sách vào từ điển Python
  9. Kết hợp các danh sách trong Python vào Khung dữ liệu

nội dung

Sử dụng phương pháp ngây thơ để kết hợp danh sách trong Python

Một phương pháp ngây thơ là một phương pháp xuất hiện đầu tiên khi nghĩ về cách thực hiện một tác vụ cụ thể. Nó không được tối ưu hóa và thường có độ phức tạp về thời gian lớn hơn các phương pháp khác

Chúng tôi sẽ sử dụng vòng lặp for để kết hợp hai danh sách-

list1=[1,2,3,4]
list2=[5,6,7,8]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
print(list1)

Output-
[1, 2, 3, 4, 5, 6, 7, 8]

Kết hợp nhiều hơn hai danh sách trong Python

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)

Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Hợp nhất nhiều danh sách thành một danh sách Python

Bạn có thể nghĩ rằng đây là một phương pháp đơn giản. Vậy tại sao chúng ta không thường sử dụng phương pháp này và gọi nó là ngây thơ. Câu trả lời rất đơn giản, chúng ta đang sử dụng hai vòng lặp for ở đây, và nếu chúng ta có nhiều danh sách và trong những danh sách đó, chúng ta có nhiều phần tử, thì độ phức tạp về thời gian sẽ lớn đến mức nào. Đó là lý do tại sao chúng tôi có các phương pháp khác nhau cho mục đích

Sử dụng chức năng mở rộng của Python

Python có chức năng tích hợp cho mục đích này- mở rộng. Hãy để chúng tôi xem làm thế nào điều này hoạt động-

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

Output-
[5, 6, 7, 8, 1, 2, 3, 4]

Bạn có thể hiểu rõ hơn về hoạt động của chức năng này với đoạn mã sau-

list1=[1,2,3,4]
list2=[5,6,7,8]
list2[len(list2):]=list1
print(list2)

Output-
[5, 6, 7, 8, 1, 2, 3, 4]

Độ phức tạp về thời gian của hàm extension() này là O(k), trong đó k là độ dài của danh sách mà chúng ta cần nối vào một danh sách khác
Nó nhỏ hơn độ phức tạp về thời gian của phương thức ngây thơ
Ngoài ra, chúng tôi đang thực hiện các thay đổi trong list2, list1 sẽ vẫn như cũ

________số 8_______

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

Sử dụng chức năng chắp thêm

Chức năng nối thêm có thể được sử dụng để thêm một danh sách đầy đủ vào một danh sách khác. Điều đó có nghĩa là các yếu tố sẽ không được thêm từng cái một mà danh sách đầy đủ sẽ được thêm vào cùng một chỉ mục. Đừng lo lắng nếu bạn không hiểu. Chúng tôi sẽ hiểu nó với một ví dụ

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
0

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
1

Bạn chắc chắn sẽ nhận thấy sự thay đổi so với đầu ra trước đó
Nó có độ phức tạp thời gian là O(1)

Sử dụng toán tử +

Đúng. Bạn đọc nó đúng. Chúng ta có thể nối bất kỳ danh sách nào bằng toán tử +

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
2

Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Sự khác biệt giữa phương thức này và các phương thức khác mà chúng ta đã học cho đến bây giờ là trong phương thức này, chúng ta nối ba danh sách khác nhau trong một danh sách khác. Trong tất cả các cách trước đó, thay đổi đã diễn ra ở một trong các danh sách

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

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
4

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
5

Sử dụng toán tử *

Nếu bạn chưa bao giờ sử dụng toán tử * trong danh sách hoặc các kiểu dữ liệu khác như tuple, bạn sẽ rất vui khi biết toán tử này hữu ích như thế nào. Nó được sử dụng để giải nén danh sách. Ví dụ-

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
6

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
7

Nó không đáng yêu sao? . Bây giờ chúng ta hãy xem toán tử * có thể được sử dụng như thế nào để kết hợp các danh sách khác nhau trong python

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
8

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
9

Nếu muốn, chúng ta có thể sử dụng điều này để kết hợp các danh sách khác nhau thành một bộ hoặc một tập hợp.

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
0

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
1

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
2

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
3

Sử dụng itertools. chuỗi()

Chúng ta có thể nhập gói itertools của python và sử dụng chức năng chuỗi của nó để kết hợp các danh sách. Để nhập sử dụng - từ chuỗi nhập itertools

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
4

Output-
[1, 2, 3, 4, 5, 6, 7, 8]
9

Như chúng ta biết rằng itertools trả về một đối tượng, vì vậy trước tiên chúng ta phải nhập nó vào kiểu dữ liệu danh sách và sau đó in nó

Kết hợp danh sách vào từ điển Python

Có rất nhiều phương pháp để chuyển đổi hai danh sách thành một từ điển làm giá trị khóa, nhưng chúng tôi sẽ chỉ nghiên cứu ở đây cách phổ biến và hiệu quả nhất

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
6

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
7

Kết hợp các danh sách trong Python vào Khung dữ liệu

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
8

list1=[1,2,3,4]
list2=[5,6,7,8]
list3=[9,10,11,12]
for i in list2:
   # appending the elements of list2 into list1
   list1.append(i)
for i in list3:
   # appending the elements of list3 into list1
   list1.append(i)
print(list1)
9

Giả sử nếu chúng ta muốn kết hợp hai list2 này trong các cột khác nhau của Khung dữ liệu-

Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
0

Output-
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
1

Phải đọc

Giải nén tệp bằng Python. 5 kịch bản bạn nên biết
Hiểu trình tự Collatz trong Python
Cách tốt nhất để tính giai thừa bằng Numpy và SciPy

Phần kết luận

Chúng tôi đã nghiên cứu rất nhiều phương pháp sử dụng để kết hợp nhiều danh sách trong Python. Bạn nên bất kỳ trong số họ theo nhu cầu của bạn. Chúng tôi đã xem xét cách kết hợp các danh sách đó ở dạng khung dữ liệu, bộ, bộ dữ liệu và ở dạng cặp khóa và giá trị trong từ điển. Vui lòng cho chúng tôi biết trong phần nhận xét nếu bạn sử dụng bất kỳ phương pháp nào khác

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

phương thức chain() được truyền các đối số của list1, list2 và list3. Phương thức này nhận nhiều đối số và trả về một chuỗi các mục. Vì vậy, phương thức chain() nối cả ba danh sách.

Bạn có thể kết hợp các danh sách trong 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ử + .