Làm thế nào để bạn làm phẳng một danh sách trong một vòng lặp for python?

Tìm kiếm liên quan. python làm phẳng danh sách, python làm phẳng , python làm phẳng danh sách các danh sách, làm phẳng danh sách các danh sách python, làm phẳng danh sách lồng nhau python, làm phẳng python, python danh sách các danh sách thành một danh sách

 

Giới thiệu về danh sách phẳng Python

Danh sách  được coi là một trong những cấu trúc dữ liệu linh hoạt nhất trong ngôn ngữ lập trình Python. Nó có thể chứa các loại dữ liệu khác nhau. Danh sách hai chiều hoặc Danh sách 2D, thường được gọi là danh sách các danh sách, là một đối tượng của danh sách trong đó mỗi phần tử chính là danh sách. Làm phẳng danh sách trong Python là một quá trình chuyển đổi danh sách Hai chiều thành danh sách Một chiều bằng cách bỏ lồng mọi phần tử danh sách được giữ trong danh sách danh sách

CŨNG ĐỌC. Nhận xét nhiều dòng Python [Phương pháp & ví dụ]

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về danh sách phẳng trong python. Chúng tôi sẽ đề cập đến nhiều cách khác nhau bao gồm vòng lặp lồng nhau, hiểu danh sách, phương thức đệ quy, hàm tổng và thông qua các mô-đun khác nhau để làm phẳng danh sách bằng cách giải các ví dụ khác nhau. Tóm lại, hướng dẫn này sẽ chứa tất cả các phương pháp và ví dụ cần thiết để bắt đầu làm việc với việc làm phẳng danh sách

 

Bắt đầu với danh sách làm phẳng Python

Như chúng ta đã thảo luận, danh sách làm phẳng python đề cập đến quá trình loại bỏ một thứ nguyên khỏi danh sách hay nói một cách đơn giản, đó là quá trình chuyển đổi danh sách Python hai chiều thành danh sách một chiều. Danh sách hai chiều là danh sách chứa danh sách dưới dạng các phần tử của nó. Ví dụ: xem ví dụ về danh sách hai chiều bên dưới

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

Lưu ý rằng danh sách được đề cập ở trên chứa các danh sách dưới dạng các phần tử của nó và việc làm phẳng chỉ đơn giản là chuyển đổi một danh sách như vậy thành một danh sách một chiều đơn giản. Ví dụ, làm phẳng danh sách trên sẽ cho chúng ta

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

Bây giờ nó là một danh sách đơn giản chứa tất cả các phần tử của danh sách hai chiều. Trong các phần sau, chúng ta sẽ thảo luận về nhiều cách khác nhau để chuyển đổi danh sách lồng nhau thành danh sách đơn giản

CŨNG ĐỌC. Vòng lặp Python for (10 ví dụ đơn giản với cú pháp)

 

Phương pháp-1. Python làm phẳng danh sách bằng cách sử dụng vòng lặp Nested

Một vòng lặp lồng nhau là một vòng lặp bên trong thân của vòng lặp bên ngoài. Vòng lặp bên trong hoặc bên ngoài có thể là bất kỳ loại nào, chẳng hạn như vòng lặp while hoặc vòng lặp for. Bạn có thể tìm hiểu thêm về vòng lặp for hoặc vòng lặp while từ bài viết về vòng lặp while trong Python và vòng lặp for trong Python. Trong phần này, chúng ta tìm hiểu cách sử dụng vòng lặp lồng nhau để làm phẳng danh sách python.  

 

Thí dụ. Cách tạo danh sách phẳng bằng vòng lặp lồng nhau

Bây giờ chúng ta hãy lấy một ví dụ và xem cách chúng ta có thể chuyển đổi danh sách lồng nhau thành danh sách đơn giản bằng cách sử dụng vòng lặp lồng nhau. Ở đây chúng ta sẽ sử dụng vòng lặp Python for để lặp qua danh sách. Xem ví dụ bên dưới

Quảng cáo

# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)

đầu ra

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

Vì vậy, trong ví dụ trên trước tiên, chúng tôi lặp qua danh sách bên ngoài và sau đó từng phần tử của danh sách lồng nhau và nối thêm các phần tử đó vào

[1, 2, 3, 4, 5, 6, 7, 8 ,9]
6 của chúng tôi

 

CŨNG ĐỌC. Tạo các thư mục lồng nhau trong Python [Ví dụ thực tế]

Phương pháp-2. Python làm phẳng danh sách bằng cách sử dụng khả năng hiểu danh sách

Khả năng hiểu danh sách trong Python là một cú pháp đơn giản và nhỏ gọn để tạo danh sách từ một chuỗi hoặc một danh sách khác. Đó là một cách rất ngắn gọn để tạo một danh sách mới bằng cách thực hiện một thao tác trên từng mục trong danh sách hiện có. Bạn có thể đọc thêm về hiểu danh sách từ bài viết về hiểu danh sách Python. Trong phần này, chúng ta sẽ tìm hiểu cách chúng ta có thể sử dụng phương pháp hiểu danh sách để làm phẳng danh sách trong Python

 

Thí dụ. Cách tạo danh sách phẳng bằng cách sử dụng hiểu danh sách

Bây giờ chúng ta hãy lấy một ví dụ và xem cách chúng ta có thể sử dụng khả năng hiểu danh sách để làm phẳng danh sách trong Python. Xem ví dụ bên dưới

# creating the nested list  
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]  
# list comprehension method in Python
# Python flatten list using list comprehension 
flatten_list = [element for sub_list in mylist for element in sub_list]  
# printing the list
print(flatten_list)

đầu ra

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

Lưu ý rằng chúng tôi đã sử dụng hai vòng lặp for trong phương pháp hiểu danh sách để lặp qua danh sách lồng nhau và tạo danh sách tất cả các phần tử từ danh sách lồng nhau

 

Phương pháp-3. Python làm phẳng danh sách bằng phương pháp đệ quy

Hàm đệ quy Python là một hàm được định nghĩa theo chính nó thông qua các biểu thức tự tham chiếu. Điều này có nghĩa là hàm sẽ tiếp tục gọi chính nó và lặp lại hành vi của nó cho đến khi một số điều kiện được đáp ứng để trả về kết quả. Nó hoạt động như một vòng lặp và chỉ thoát ra khi thỏa mãn điều kiện quy định. Trong phần này, chúng ta sẽ tìm hiểu cách sử dụng phương thức đệ quy Python để làm phẳng danh sách

CŨNG ĐỌC. Các ví dụ về lớp Python được giải thích [Người mới bắt đầu]

 

Thí dụ. Cách tạo danh sách phẳng bằng phương pháp đệ quy

Bây giờ chúng ta hãy lấy một ví dụ và xem cách chúng ta có thể sử dụng phương thức đệ quy của python để làm phẳng một danh sách lồng nhau. Xem chương trình Python bên dưới

Quảng cáo

# Python function  
def flatten_list(nested_list):  
    # check if the nested list is empty or not
    if len(nested_list) == 0:  
        return nested_list  
    # Check if the nested lis contains list or not
    if isinstance(nested_list[0], list): 
        # calling the same function again and again 
        return flatten_list(nested_list[0]) + flatten_list(nested_list[1:])  
    # Return value
    return nested_list[:1] + flatten_list(nested_list[1:])  
# printing the return value of the recursive method
print(flatten_list([[1,2,3], [4,5,6], [7,8,9]]))  

đầu ra

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

Vì vậy, ở đây chúng tôi đã sử dụng phương pháp đệ quy để trả về danh sách phẳng từ danh sách lồng nhau

 

Phương pháp-4. Python làm phẳng danh sách bằng thư viện funcools và toán tử

Thư viện toán tử cung cấp hàm 

[1, 2, 3, 4, 5, 6, 7, 8 ,9]
7 để thực hiện thao tác cơ bản như nối. Chúng ta có thể áp dụng hàm này cộng dồn cho các thành phần dữ liệu của danh sách lồng nhau, từ trái sang phải, dẫn đến việc rút gọn danh sách lồng nhau thành danh sách dẹt. Bây giờ chúng ta hãy lấy một ví dụ và xem cách chúng ta có thể sử dụng các thư viện python này để làm phẳng các danh sách lồng nhau

 

Thí dụ. Cách tạo danh sách phẳng bằng thư viện funcools và toán tử

Trước khi viết chương trình python, đầu tiên, chúng ta phải nhập hai thư viện này bằng từ khóa

[1, 2, 3, 4, 5, 6, 7, 8 ,9]
8. Một lần, chúng tôi đã nhập thành công các thư viện này, chúng tôi sẵn sàng sử dụng. Xem ví dụ bên dưới

# importing operator library 
import operator  
# importing functools library
import functools  
# nested list
nested_list = [[1,2,3],[4,5,6],[7,8,9]]
# Python flatten list using functools and operator libaries
Regular_list = functools.reduce(operator.iconcat, nested_list, [])
# printing the regualar list
print(Regular_list)  

đầu ra

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

Trong ví dụ trên, chúng tôi đã nhập thư viện functools cùng với thư viện toán tử. Sau đó, hàm

[1, 2, 3, 4, 5, 6, 7, 8 ,9]
9 nhận hai đối số và tới các mục và lặp lại giá trị có thể lặp lại từ trái sang phải để giảm giá trị có thể lặp lại thành một giá trị. Kết quả là danh sách các danh sách được chuyển thành danh sách dẹt thành công

Quảng cáo

 

CŨNG ĐỌC. Python continue Giải thích [Hướng dẫn cho người mới bắt đầu]

Phương pháp-5. Làm phẳng danh sách Python bằng thư viện itertools

Thư viện 

# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
0 cung cấp chức năng 
# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
1 cho phép chúng tôi chuyển đổi một danh sách lồng nhau thành một danh sách phẳng duy nhất một cách lý tưởng. Hàm này coi các chuỗi liên tiếp là một chuỗi duy nhất bằng cách lặp lại chúng thông qua lần lặp được truyền dưới dạng tham số theo cách nối tiếp. Trong phần này, chúng ta sẽ giải một ví dụ bằng thư viện này và sẽ chuyển đổi danh sách lồng nhau thành danh sách đơn giản bằng thư viện
# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
0

 

Thí dụ. Cách tạo danh sách phẳng bằng thư viện itertools

Bây giờ chúng ta hãy lấy một ví dụ về danh sách lồng nhau và sau đó sẽ chuyển đổi nó thành danh sách một chiều bằng thư viện

# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
0. Xem ví dụ bên dưới

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

đầu ra

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

Lưu ý rằng trước tiên, chúng tôi đã nhập thư viện

# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
0 và sau đó tạo một danh sách lồng nhau. Sau đó, chúng tôi đã sử dụng hàm
# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
1 để chuyển đổi danh sách lồng nhau đã cho thành danh sách phẳng và in nó

 

Phương pháp-6. Python làm phẳng danh sách bằng thư viện NumPy

NumPy là gói cơ bản cho tính toán khoa học trong Python. Nó cung cấp các hoạt động khác nhau, bao gồm cả việc nối các Mảng thông thường hai chiều theo cột hoặc theo hàng. Trong phần này, chúng ta sẽ sử dụng thuộc tính được gọi là phẳng để lấy Bộ lặp một chiều trên mảng để chinh phục mục tiêu. Nhưng trước tiên, bạn phải cài đặt thư viện NumPy trên hệ thống của mình nếu nó chưa được cài đặt. Bạn có thể sử dụng lệnh

# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
6 để cài đặt NumPy

CŨNG ĐỌC. Ví dụ về số lượng ngẫu nhiên. rand(). hàm randint()

 

Thí dụ. Cách tạo danh sách phẳng bằng thư viện NumPy

Bây giờ chúng ta hãy lấy một ví dụ và xem cách chúng ta có thể sử dụng thư viện NumPy và thuộc tính phẳng của nó để làm phẳng danh sách. Xem ví dụ bên dưới

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

đầu ra

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

Lưu ý rằng trước tiên, chúng tôi đã nhập thư viện NumPy và sau đó tạo danh sách lồng nhau.  . Sau đó, chúng tôi đã sử dụng hàm nối của thư viện NumPy cùng với thuộc tính phẳng của nó để làm phẳng các phần tử của danh sách lồng nhau và nối chúng thành một danh sách phẳng mới

 

Phương pháp-7. Python làm phẳng danh sách bằng cách sử dụng hàm tổng

Chúng ta có thể coi việc tổng hợp các danh sách bên trong là một giải pháp khác cho vấn đề. Trước tiên, chúng ta cần truyền hai đối số cho hàm sum . Tham số đầu tiên là có thể lặp lại, là danh sách lồng nhau và tham số thứ hai là phần đầu của danh sách trống cho trường hợp sau đây đóng vai trò là danh sách cố định ban đầu nơi các thành phần dữ liệu của danh sách con bên trong sẽ được thêm vào.  

 

Thí dụ. Cách tạo danh sách phẳng bằng hàm tổng

Bây giờ chúng ta hãy lấy một ví dụ và xem cách chúng ta có thể sử dụng hàm tổng để làm phẳng danh sách lồng nhau của python. Xem ví dụ bên dưới

Quảng cáo

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

đầu ra

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

Lưu ý rằng trong ví dụ trên, chúng tôi đã xác định danh sách lồng nhau. Sau đó, chúng tôi đã sử dụng hàm

# creating empty list 
flatten_list = []
# creating list 
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# interating thorugh the outer list
for element in mylist:
    # iterating through the nested list
    for nested_element in element:
        # adding element to our list
        flatten_list.append(nested_element)
# printing 
print(flatten_list)
7 và làm phẳng danh sách lồng nhau thành danh sách Một chiều và in danh sách kết quả

CŨNG ĐỌC. Giải thích mô-đun cấu trúc Python [Ví dụ đơn giản]

 

Tóm lược

Khi chúng ta chuyển đổi một danh sách các danh sách, hoặc một mảng 2 chiều, thành một mảng một chiều, nó được gọi là làm phẳng danh sách. Trong hướng dẫn này, chúng ta đã tìm hiểu về 7 cách khác nhau để làm phẳng danh sách lồng nhau trong Python. Chúng tôi đã đề cập đến phương pháp vòng lặp lồng nhau, hiểu danh sách, phương thức đệ quy, phương thức tính tổng và cũng đề cập đến một số mô-đun Python giúp chúng tôi làm phẳng danh sách lồng nhau. Tóm lại, hướng dẫn này chứa tất cả các phương pháp và cách cần thiết hữu ích để làm phẳng một danh sách trong Python cùng với các ví dụ khác nhau