Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để làm phẳng một danh sách mà không cần sử dụng Đệ quy

Khi cần làm phẳng danh sách mà không sử dụng kỹ thuật đệ quy, có thể sử dụng hàm lambda, phương thức "sum", phương thức "map" và phương thức "isinstance".

Một danh sách có thể được sử dụng để lưu trữ các giá trị không đồng nhất (tức là dữ liệu thuộc bất kỳ kiểu dữ liệu nào như số nguyên, dấu phẩy động, chuỗi, v.v.).

Phương thức 'isinstance' kiểm tra xem một tham số nhất định có thuộc về một kiểu dữ liệu cụ thể hay không.

Hàm ẩn danh là một hàm được định nghĩa mà không có tên. Nói chung, các hàm trong Python được định nghĩa bằng từ khóa ‘def’, nhưng hàm ẩn danh được định nghĩa với sự trợ giúp của từ khóa ‘lambda’. Nó sử dụng một biểu thức duy nhất, nhưng có thể nhận bất kỳ số lượng đối số nào. Nó sử dụng biểu thức và trả về kết quả của nó.

Hàm bản đồ áp dụng một hàm / hoạt động nhất định cho mọi mục trong một tệp có thể lặp lại (chẳng hạn như danh sách, bộ tuple). Kết quả là nó trả về một danh sách.

Phương thức 'sum' thêm các giá trị số có trong một tệp có thể lặp lại.

Ví dụ

Dưới đây là một minh chứng cho điều tương tự -

my_list = [[[11,[[32]],[[[53]]]],[[64],75]], [[6, 89, 99]]]
flattened_list = lambda my_list: sum(map(flattened_list,my_list),[]) if isinstance(my_list,list) else [my_list]
print("The original list is : ")
print(my_list)
print("The flattened list is :")
print(flattened_list(my_list))

Đầu ra

The original list is :
[[[11, [[32]], [[[53]]]], [[64], 75]], [[6, 89, 99]]]
The flattened list is :
[11, 32, 53, 64, 75, 6, 89, 99]

Giải thích

  • Một danh sách lồng nhau được xác định và hiển thị trên bảng điều khiển.
  • Các phần tử được tổng hợp bằng phương pháp "sum" và điều này được áp dụng cho mọi phần tử bằng phương pháp "map".
  • Kết quả của thao tác này được gán cho một biến.
  • Nó được hiển thị dưới dạng đầu ra trên bảng điều khiển.