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

Người mới bắt đầu Python ở đây.

Tôi có 2 danh sách lồng nhau mà tôi muốn hợp nhất:

list1 = ['a',
         (b, c),
         (d, e),
         (f, g, h) ]

list2 = [(p,q),
         (r, s),
         (t),
         (u, v, w) ]

Đầu ra mà tôi đang tìm kiếm là:

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]

Điều này có thể được thực hiện mà không cần bất kỳ thư viện bên ngoài nào không? Lưu ý: Len (list1) = len (list2)

Phương pháp số 3: Sử dụng Starmap () và Concat ().

Examples:  

Input : lst1 = [[5, 9], [8, 2, 6], [3, 4]]
        lst2 = [[9, 5, 8], [2, 6], [3, 4, 1]]
Output : [[9, 5], [8], [2, 6], [3, 4], [1]]

Input : lst1 = [['a', 'b', 'c'], ['x']]
        lst2 = [['b', 'c', 'y'], ['x', 'y']]
Output : [['b', 'c'], ['x'], ['y'], ['a']]

Cách tiếp cận số 1: Bằng cách đặt giao nhau bằng cách sử dụng functools.reduce () Phương thức này sử dụng giao lộ đặt để tính toán từng giao lộ, sau đó thêm bất kỳ mục nào còn lại (nghĩa là các mục xuất hiện trên một trong hai danh sách). Trước tiên chúng tôi sẽ sử dụng functools.reduce () để mang lại các yếu tố duy nhất của ‘LST1, và‘ LST2, và lưu chúng vào ‘temp1, và‘ temp2. Sau này, hãy tìm giao điểm tập hợp của cả hai danh sách trong ‘LST3. Cuối cùng, hãy tìm sự khác biệt đối xứng của ‘LST1, và‘ LST2, mang lại các mục xuất hiện chỉ trong một trong 2 bộ và nối nó vào ‘LST3.By set intersection using functools.reduce()
This method uses the set intersection to compute each intersection, then add any item which is leftover (that is, items appearing on only one of the two lists). We will first use functools.reduce() to yield unique elements of ‘lst1’ and ‘lst2’ and save them to ‘temp1’ and ‘temp2’ respectively. After this, find the set intersection of both the list in ‘lst3’. At last, find the symmetric difference of ‘lst1’ and ‘lst2’, which yields the items which appear in only one of the 2 sets and append it to ‘lst3’.

Python3

import itertools

import functools

def

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
0

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
2
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
4
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
5
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
7
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
8
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9______

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
Input : lst1 = [[5, 9], [8, 2, 6], [3, 4]]
        lst2 = [[9, 5, 8], [2, 6], [3, 4, 1]]
Output : [[9, 5], [8], [2, 6], [3, 4], [1]]

Input : lst1 = [['a', 'b', 'c'], ['x']]
        lst2 = [['b', 'c', 'y'], ['x', 'y']]
Output : [['b', 'c'], ['x'], ['y'], ['a']]
4
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
4
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
5
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
7
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
8
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9______

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
[[9, 5], [8], [2, 6], [3, 4], [1]]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3
[[9, 5], [8], [2, 6], [3, 4], [1]]
8
[[9, 5], [8], [2, 6], [3, 4], [1]]
9
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9
[[9, 5], [8], [2, 6], [3, 4], [1]]
2
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9
[[9, 5], [8], [2, 6], [3, 4], [1]]
4

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

Các

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1itertools2
[[9, 5], [8], [2, 6], [3, 4], [1]]
6 itertools4
[[9, 5], [8], [2, 6], [3, 4], [1]]
8 itertools6

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1itertools8 itertools9

import0

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3 import2import3import4import5import6__7777474797474

functools7

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3 import2import5import4import3import4__7777676797474

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
06
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
07

Output:

[[9, 5], [8], [2, 6], [3, 4], [1]]

& nbsp; Cách tiếp cận #2: Bằng cách đặt giao lộ bằng Filter This là một cách tiếp cận hiệu quả đối với cách tiếp cận #1 vì nó đơn giản hóa giao điểm. Đầ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 yếu 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, hãy nối ‘Temp, vào‘ LST3, & NBSP;
Approach #2 : By set intersection using filter
This is an efficient approach over approach #1 as it simplifies the intersection. First, flatten the nested lists. Take Intersection using filter() and save it to ‘lst3’. Now find elements either not in lst1 or in lst2, and save them to ‘temp’. Finally, append ‘temp’ to ‘lst3’. 

Python3

import itertools

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
10
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
11import
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
5

def

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
0

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
2
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
4
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
5
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
7
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
8
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9______

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
Input : lst1 = [[5, 9], [8, 2, 6], [3, 4]]
        lst2 = [[9, 5, 8], [2, 6], [3, 4, 1]]
Output : [[9, 5], [8], [2, 6], [3, 4], [1]]

Input : lst1 = [['a', 'b', 'c'], ['x']]
        lst2 = [['b', 'c', 'y'], ['x', 'y']]
Output : [['b', 'c'], ['x'], ['y'], ['a']]
4
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
4
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
5
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
7
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
8
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9______

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
[[9, 5], [8], [2, 6], [3, 4], [1]]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3
[[9, 5], [8], [2, 6], [3, 4], [1]]
8
[[9, 5], [8], [2, 6], [3, 4], [1]]
9
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
6
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9
[[9, 5], [8], [2, 6], [3, 4], [1]]
2
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
9
[[9, 5], [8], [2, 6], [3, 4], [1]]
4

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

Các

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1itertools2
[[9, 5], [8], [2, 6], [3, 4], [1]]
6 itertools4
[[9, 5], [8], [2, 6], [3, 4], [1]]
8 itertools6

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
75
[[9, 5], [8], [2, 6], [3, 4], [1]]
9
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
77

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
1itertools8 itertools9

import0

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3 import2import3import4import5import6__7777474797474

functools7

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
3 import2import5import4import3import4__7777676797474

list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
06
list3 = [(a, p, q),
         (b, c, r, s),
         (d, e, t),
         (f, g, h, u, v, w) ]
07

Output:

[[9, 5], [8], [2, 6], [3, 4], [1]]


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

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ó..

Làm thế nào để tôi hợp nhất những người phụ nữ thành một danh sách?

Đưa ra hai danh sách có chứa những người phụ, nhiệm vụ là hợp nhất các yếu tố của danh sách phụ của hai danh sách trong một danh sách duy nhất ...
Examples:.
Phương pháp số 1: Sử dụng MAP + Lambda ..
Phương pháp số 2: Sử dụng zip ().
Phương pháp số 3: Sử dụng Starmap () và Concat ().

Làm thế nào để bạn hợp nhất 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 thế nào để bạn làm phẳng một danh sách lồng nhau một danh sách các danh sách các số trong Python?

Có ba cách để làm phẳng danh sách Python:..
Sử dụng danh sách hiểu biết ..
Sử dụng một vòng lặp cho vòng lặp ..
Sử dụng itertools.Chuỗi () Phương thức ..