Loại bỏ danh sách lồng nhau Python

Khả năng hiểu danh sách là một trong những tính năng quan trọng nhất của Python. Khả năng hiểu danh sách cung cấp một cách thông minh để tạo danh sách dựa trên danh sách hiện có. Cùng với việc tạo danh sách mới, khả năng hiểu danh sách có thể được sử dụng để lọc và ánh xạ các thành phần của danh sách. Thông thường, việc hiểu danh sách có dấu ngoặc và biểu thức, theo sau là vòng lặp for. Các câu lệnh if cũng được sử dụng bên trong các vòng lặp này

Khả năng hiểu danh sách luôn trả về một danh sách hoàn toàn mới cho người dùng.    

Danh sách lồng nhau là gì?

Danh sách lồng nhau không là gì ngoài nhiều danh sách trong một danh sách

cách vòng lặp

Mã số

# Python code to flatten the nested list
# Python 3 Code

# Input list
nested_lists = [[3, 4, 5],[ 7, 8, 9, 10]]

# Initialized empty flatten list 
flat_list = []

#flatten the list
for x in nested_lists:
        for y in x:
                flat_list.append[y]

# Final Output
print["Flatten List:",flat_list]

đầu ra.  

Flatten List: [3, 4, 5, 7, 8, 9, 10]

Giải trình

Ở đây, một danh sách hai chiều bao gồm các phần tử [[3, 4, 5],[ 7, 8, 9, 10]] được gán cho một biến có tên là Nested_lists. Một biến gọi là flatten_list được khởi tạo với dấu ngoặc trống []. Sau đó, một vòng lặp for được sử dụng để lặp qua các phần tử của biến nested_lists. Một vòng lặp bên trong khác được sử dụng trong vòng lặp này, vì nó là danh sách hai chiều. Trong vòng lặp này, dòng flat_list. append[y] được sử dụng để nối thêm hoặc thêm tất cả các phần tử của danh sách vào flatten_list. Câu lệnh print[] in ra các phần tử của danh sách này

Do đó, đầu ra cuối cùng là

Làm phẳng danh sách. [3, 4, 5, 7, 8, 9, 10]

Liệt kê cách hiểu

# Python code to flatten the nested list
# Python 3 Code

# Input list
nested_lists = [[3, 4, 5],[ 7, 8, 9, 10]]

#flatten the lists
flat_list = [y for x in nested_lists for y in x]
print["Flatten List: ",flat_list]

đầu ra.  

Flatten List: [3, 4, 5, 7, 8, 9, 10]

Giải trình

Các phần tử [[3, 4, 5],[ 7, 8, 9, 10]] dùng để khởi tạo biến nested_lists. Dòng mã tiếp theo là y cho x trong nested_lists cho y trong x. Điều này được sử dụng để làm phẳng các thành phần danh sách của danh sách Nested_list. Dòng mã cuối cùng được sử dụng để in ra các phần tử của flat_list

Do đó, đầu ra cuối cùng là

Làm phẳng danh sách. [3, 4, 5, 7, 8, 9, 10]

itertools. hàm chain[]

# Python code to flatten the nested list
# Python 3 Code

# Input list
nested_lists = [[1,2,3],[4,5,6], [7], [8,9]]

import itertools
listflat = list[itertools.chain[*nested_lists]]
print["Flatten List:",listflat]

đầu ra.  

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

Giải trình

Biến nested_list được khởi tạo với các phần tử [[1,2,3],[4,5,6], [7], [8,9]]. Trong dòng mã tiếp theo, câu lệnh nhập được sử dụng để tải mô-đun itertools. Sau đó, itertools. phương thức chain[] được sử dụng để làm phẳng danh sách trong biến nested_list. Dòng mã tiếp theo là

listflat = list[itertools.chain[*nested_lists]]

Ở đây, itertools. Phương thức chain[] lấy các phần tử của Nested_lists làm đối số. Biểu tượng * trước nested_lists xác định nhiều hoặc tất cả các phần tử của nó. Sau đó, kết quả của phương thức này được đưa vào phương thức list[] để chuyển đổi chuỗi thành danh sách. Kết quả cuối cùng của phương thức list[] được gán cho một biến gọi là listflat. Giá trị trong biến listflat được in ra ở dòng cuối cùng bằng phương thức print[]

kết quả cuối cùng là

Làm phẳng danh sách. [1, 2, 3, 4, 5, 6, 7, 8, 9]

itertools. chuỗi. from_iterable[]

# Python code to flattern the nested list
# Python 3 Code

# Input list
nested_lists = [[1,2,3],[4,5,6], [7], [8,9]]

import itertools
listflat = list[itertools.chain.from_iterable[nested_lists]]
print["Flatten List:",listflat]

đầu ra.  

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

Giải trình

Trong chương trình này, một biến có tên là nested_lists được gán giá trị là [[1,2,3],[4,5,6], [7], [8,9]]. Sau đó, mô-đun itertools được tải bằng câu lệnh nhập. itertools. chuỗi. phương thức from_iterable[] được sử dụng tiếp theo. Phương thức này nhận một đối số duy nhất có thể là một danh sách các danh sách. Vì vậy, các phần tử của nested_lists được chuyển thành đối số cho itertools. chuỗi. phương thức from_iterable[]. Kết quả của lệnh gọi hàm này được chuyển thành đối số cho phương thức list[] chuyển đổi chuỗi thành danh sách

Danh sách phẳng cuối cùng được in bằng mã print["Danh sách phẳng. ", danh sách phẳng]. Giá trị kết quả của biến listflat là [1, 2, 3, 4, 5, 6, 7, 8, 9].   

Phần kết luận

Cùng với các phương thức và danh sách tùy chỉnh, các kỹ thuật hiểu danh sách có thể được sử dụng cho các thao tác với tệp. Bạn có thể lọc các phần tử từ danh sách và cũng có thể tạo chuỗi. Trong khi tạo danh sách, các kỹ thuật hiểu danh sách nhanh hơn và hiệu quả hơn các hàm thông thường. Tuy nhiên, để làm cho mã dễ đọc hơn, hãy tránh viết các cách hiểu danh sách quá dài, chẳng hạn như các cách hiểu liên quan đến vòng lặp for trong một dòng.  

Làm cách nào để chuyển đổi danh sách con thành danh sách trong Python?

Nhiệm vụ là chuyển đổi danh sách lồng nhau thành danh sách đơn trong python i. Cho dù có bao nhiêu cấp độ lồng trong danh sách python, tất cả các cấp độ lồng nhau phải được loại bỏ để chuyển đổi nó thành một danh sách duy nhất chứa tất cả các giá trị của tất cả các danh sách bên trong lớp ngoài cùng . .

Làm cách nào để chuyển đổi danh sách đa chiều thành danh sách đơn trong Python?

Có thể chuyển đổi danh sách nhiều chiều như l=[[1,2],[3,4]] thành danh sách 1D bằng cách thực hiện sum[l,[]]< . Làm thế nào để điều này xảy ra? . Ví dụ: nếu A là danh sách 3D, thì sum[sum[A],[]],[]] sẽ làm phẳng A thành danh sách 1D. ] . How does this happen? [This doesn't work directly for higher multidimensional lists, but it can be repeated to handle those cases. For example if A is a 3D-list, then sum[sum[A],[]],[]] will flatten A to a 1D list.]

Unnest trong Python là gì?

Nếu một số phần tử trong đối tượng sê-ri có danh sách, thì chúng ta có thể bỏ lồng các phần tử danh sách đó vào nhiều hàng của đối tượng sê-ri. Hủy tổ hợp không gì khác ngoài việc phân tách danh sách thành các hàng . Vì vậy, việc chuyển đổi này có thể được thực hiện dễ dàng với sự trợ giúp của pandas series. phương pháp phát nổ [].

Chủ Đề