Hướng dẫn how to merge list of lists in python - cách hợp nhất danh sách danh sách trong python

Đối với độ phẳng một cấp, nếu bạn quan tâm đến tốc độ, điều này nhanh hơn bất kỳ câu trả lời nào trước đây trong mọi điều kiện tôi đã thử. . bằng Slice (là bản sao khối cấp thấp hơn bất kỳ phương thức Iterator nào):

def join(a):
    """Joins a sequence of sequences into a single sequence.  (One-level flattening.)
    E.g., join([(1,2,3), [4, 5], [6, (7, 8, 9), 10]]) = [1,2,3,4,5,6,(7,8,9),10]
    This is very efficient, especially when the subsequences are long.
    """
    n = sum([len(b) for b in a])
    l = [None]*n
    i = 0
    for b in a:
        j = i+len(b)
        l[i:j] = b
        i = j
    return l

Danh sách thời gian sắp xếp với nhận xét:

[(0.5391559600830078, 'flatten4b'), # join() above. 
(0.5400412082672119, 'flatten4c'), # Same, with sum(len(b) for b in a) 
(0.5419249534606934, 'flatten4a'), # Similar, using zip() 
(0.7351131439208984, 'flatten1b'), # list(itertools.chain.from_iterable(a)) 
(0.7472689151763916, 'flatten1'), # list(itertools.chain(*a)) 
(1.5468521118164062, 'flatten3'), # [i for j in a for i in j] 
(26.696547985076904, 'flatten2')] # sum(a, [])


Trong Python, một danh sách là một chuỗi được đặt hàng có thể chứa một số loại đối tượng như số nguyên, ký tự hoặc float.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách tham gia danh sách các danh sách (danh sách lồng nhau) bằng Python. Bây giờ chúng ta thấy 4 phương pháp để hoàn thành nhiệm vụ này -

  • Sử dụng Nested for Loop

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

  • Sử dụng hàm sum ()

  • Sử dụng mô -đun Numpy

Giả sử chúng tôi đã lấy một danh sách các danh sách chứa một số yếu tố. Chúng tôi sẽ tham gia các danh sách đó và trả về kết quả bằng các phương thức khác nhau như được chỉ định ở trên.

Phương pháp 1: Sử dụng Nested for Loop

Thuật toán (bước)

  • Tạo một biến để lưu trữ danh sách đầu vào của danh sách (danh sách lồng nhau).

  • Tạo một danh sách trống mới để lưu trữ danh sách kết quả

  • Sử dụng vòng lặp For, để đi qua cho đến khi độ dài của danh sách đầu vào của danh sách sử dụng hàm Len () (số lượng mục trong một đối tượng được trả về bằng phương thức Len ()) len() function(The number of items in an object is returned by the len() method)

  • Lấy một vòng khác cho vòng lặp đi qua từng yếu tố của danh sách lồng nhau

  • Sử dụng hàm append () (thêm phần tử vào danh sách ở cuối) để thêm phần tử này vào danh sách kết quả.append() function(adds the element to the list at the end) to add this element to the result list.

  • In danh sách kết quả sau khi tham gia danh sách đầu vào của danh sách.

Thí dụ

Chương trình sau trả về danh sách sau khi tham gia danh sách đầu vào của danh sách bằng mô -đun Numpy -

input_nestedlist = [[1, 3],[2, 6, 7],[9, 5, 12, 7]] print(input_nestedlist) resultList = [] for m in range(len(input_nestedlist)): for n in range (len(input_nestedlist[m])): resultList.append(input_nestedlist[m][n]) print("Resultant list after joining the list of lists = ", resultList)

Đầu ra

Sự kết luận

[[1, 3], [2, 6, 7], [9, 5, 12, 7]]
Resultant list after joining the list of lists = [1, 3, 2, 6, 7, 9, 5, 12, 7]

Chúng tôi đã học cách tham gia/kết hợp danh sách các danh sách vào danh sách 1 chiều bằng bốn phương pháp khác nhau, bao gồm cho các vòng lặp, danh sách hiểu, hàm numpy và hàm sum (), từ bài viết này. Chúng tôi cũng đã học được những gì xảy ra khi chúng tôi vượt qua danh sách danh sách lồng nhau với một danh sách trống để sum ().

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -

  • Tạo một biến để lưu trữ danh sách đầu vào của danh sách (danh sách lồng nhau).

  • Tạo một danh sách trống mới để lưu trữ danh sách kết quảlist comprehension to create a new list by joining all the elements of the nested list

When you want to create a new list based on the values of an existing list, list comprehension provides a concise syntax.
  • In danh sách kết quả sau khi tham gia danh sách đầu vào của danh sách.

Thí dụ

Chương trình sau trả về danh sách sau khi tham gia danh sách đầu vào của danh sách bằng mô -đun Numpy -

input_list = [["tutorialspoint", "python"], [2, 6, 7], [9, 5, 12, 7]] print(input_list) resultList = [element for nestedlist in input_list for element in nestedlist] print("Resultant list after joining list of lists = ", resultList)

Đầu ra

Sự kết luận

[['tutorialspoint', 'python'], [2, 6, 7], [9, 5, 12, 7]]
Resultant list after joining list of lists = ['tutorialspoint', 'python', 2, 6, 7, 9, 5, 12, 7]

Phương pháp 3: Sử dụng hàm sum ()

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -

  • Sử dụng hàm SUM () để kết hợp danh sách lồng nhau vào một danh sách duy nhất bằng cách chuyển một danh sách trống như một đối số thứ hai cho nó.sum() function to concatenate nested lists to a single list by passing an empty list as a second argument to it.

Hàm SUM () trả về một số đại diện cho tổng của tất cả các mục trong một số không thể điều chỉnh được.

Cú pháp

sum(iterable, start)

Thông số

itable (tùy chọn) - bất kỳ trình tự như danh sách, tuple, v.v.− any sequence like list, tuple etc

Bắt đầu (Tùy chọn) - Giá trị được thêm/thêm vào giá trị trả về− A value appended/added to the return value

  • In danh sách kết quả sau khi tham gia danh sách đầu vào của danh sách.

Thí dụ

Chương trình sau trả về danh sách sau khi tham gia danh sách đầu vào của danh sách bằng hàm sum () -

input_listoflists = [["tutorialspoint", "python"], [2, 6, 7],[9, 5]] print(input_listoflists) resultList = sum(input_listoflists, []) print("Resultant list after joining the list of lists:
"
, resultList)

Đầu ra

[['tutorialspoint', 'python'], [2, 6, 7], [9, 5]]
Resultant list after joining the list of lists:
['tutorialspoint', 'python', 2, 6, 7, 9, 5]

Phương pháp 4: Sử dụng mô -đun Numpy

Thư viện Numpy bao gồm các chức năng để kết hợp chuỗi con và làm phẳng chúng vào một danh sách 1 chiều duy nhất.

Thuật toán (bước)

Sau đây là các thuật toán/các bước được tuân thủ để thực hiện nhiệm vụ mong muốn -

  • Sử dụng hàm SUM () để kết hợp danh sách lồng nhau vào một danh sách duy nhất bằng cách chuyển một danh sách trống như một đối số thứ hai cho nó.

  • Hàm SUM () trả về một số đại diện cho tổng của tất cả các mục trong một số không thể điều chỉnh được. concatenate() function and flatten them into a 1-Dimensional list using the flat attribute and list() function(converts into a list) respectively

  • In danh sách kết quả sau khi tham gia danh sách đầu vào của danh sách.

Thí dụ

Chương trình sau trả về danh sách sau khi tham gia danh sách đầu vào của danh sách bằng hàm sum () -

[(0.5391559600830078, 'flatten4b'), # join() above. 
(0.5400412082672119, 'flatten4c'), # Same, with sum(len(b) for b in a) 
(0.5419249534606934, 'flatten4a'), # Similar, using zip() 
(0.7351131439208984, 'flatten1b'), # list(itertools.chain.from_iterable(a)) 
(0.7472689151763916, 'flatten1'), # list(itertools.chain(*a)) 
(1.5468521118164062, 'flatten3'), # [i for j in a for i in j] 
(26.696547985076904, 'flatten2')] # sum(a, [])
0

Đầu ra

[(0.5391559600830078, 'flatten4b'), # join() above. 
(0.5400412082672119, 'flatten4c'), # Same, with sum(len(b) for b in a) 
(0.5419249534606934, 'flatten4a'), # Similar, using zip() 
(0.7351131439208984, 'flatten1b'), # list(itertools.chain.from_iterable(a)) 
(0.7472689151763916, 'flatten1'), # list(itertools.chain(*a)) 
(1.5468521118164062, 'flatten3'), # [i for j in a for i in j] 
(26.696547985076904, 'flatten2')] # sum(a, [])
1

Phương pháp 4: Sử dụng mô -đun Numpy

Thư viện Numpy bao gồm các chức năng để kết hợp chuỗi con và làm phẳng chúng vào một danh sách 1 chiều duy nhất.

Hướng dẫn how to merge list of lists in python - cách hợp nhất danh sách danh sách trong python

Sử dụng từ khóa nhập, để nhập mô -đun Numpy

  • Tham gia danh sách các danh sách bằng cách sử dụng hàm Concatenate () và làm phẳng chúng vào danh sách 1 chiều bằng cách sử dụng chức năng thuộc tính phẳng và danh sách () (chuyển đổi thành danh sách) tương ứng
  • Chương trình sau trả về danh sách sau khi tham gia danh sách đầu vào của danh sách bằng mô -đun Numpy -
  • Sự kết luận
  • Chúng tôi đã học cách tham gia/kết hợp danh sách các danh sách vào danh sách 1 chiều bằng bốn phương pháp khác nhau, bao gồm cho các vòng lặp, danh sách hiểu, hàm numpy và hàm sum (), từ bài viết này. Chúng tôi cũng đã học được những gì xảy ra khi chúng tôi vượt qua danh sách danh sách lồng nhau với một danh sách trống để sum ().
  • Cập nhật vào ngày 19 tháng 9 năm 2022 10:38:44
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để tham gia hai danh sách trong C#?
  • Python - Chuyển đổi danh sách danh sách thành danh sách các bộ
  • Chuyển đổi danh sách thành danh sách danh sách trong Python
  • Làm thế nào để có được độ dài của một danh sách các danh sách trong Python?
  • Chương trình Java tham gia hai danh sách
  • Làm thế nào để tham gia hoặc kết hợp hai danh sách trong C#?
  • Làm thế nào để nối danh sách vào danh sách thứ hai (danh sách concatenate) trong Python?
  • Python - Các cách để lặp lại danh sách danh sách Tuple
  • Làm thế nào để tạo một danh sách phẳng trong danh sách các danh sách trong Python?
  • Phép nhân tùy chỉnh trong danh sách danh sách trong Python

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

Một cách đơn giản và phổ biến để hợp nhất (tham gia) hai danh sách trong Python là sử dụng phương thức Python được xây dựng trong phần adcend (). Phương thức append () trong Python thêm một mục duy nhất vào danh sách hiện có. Nó không trả lại một danh sách các mặt hàng 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.using the in-built append() method of python. The append() method in python adds a single item to the existing list. It doesn't return a new list of items. Instead, it modifies the original list by adding the item to the end of the list.

Làm cách nào để kết hợp nhiều danh sách thành một python?

Phương thức chuỗi () được thông qua các đối số của List1, List2 và List3.Phương pháp này có nhiều đối số và trả về một chuỗi các mục.Vì vậy, phương thức chuỗi () kết hợp cả ba danh sách.Kết quả của cuộc gọi phương thức được chuyển đổi thành một danh sách bằng phương thức Danh sách (). is passed the arguments of list1, list2 and list3. This method takes multiple arguments and returns a single sequence of items. So, the chain() method concatenates all three lists. The result of the method call is converted into a list using the list() method.

Làm thế nào để bạn hợp nhất ba danh sách trong Python?

Sử dụng toán tử + Toán tử + thực hiện một công việc thẳng về phía trước là tham gia các danh sách với nhau.Chúng tôi chỉ áp dụng toán tử giữa tên của danh sách và kết quả cuối cùng được lưu trữ trong danh sách lớn hơn.Trình tự của các yếu tố trong danh sách được bảo tồn. The + operator does a straight forward job of joining the lists together. We just apply the operator between the name of the lists and the final result is stored in the bigger list. The sequence of the elements in the lists are preserved.

Làm cách nào để hợp nhất danh sách lồng nhau?

Đầu tiên, làm phẳng các danh sách lồng nhau.Lấy giao nhau bằng Filter () và lưu nó vào 'LST3'.Bây giờ tìm các phần tử không phải trong LST1 hoặc trong LST2 và lưu chúng vào 'tạm thời'.Cuối cùng, nối 'temp' vào 'lst3'.