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
- Sử dụng Phương pháp Naïve để kết hợp các danh sách trong python
- Sử dụng chức năng mở rộng của Python
- Chức năng nối thêm
- Sử dụng toán tử +
- hiểu danh sách
- Sử dụng toán tử *
- Sử dụng itertools. chuỗi[]
- Kết hợp danh sách vào từ điển Python
- 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]
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