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

Chương trình Python để làm phẳng một danh sách lồng nhau bằng cách sử dụng Đệ quy

Khi cần làm phẳng một danh sách lồng nhau nhất định bằng kỹ thuật đệ quy, lập chỉ mục đơn giản và phương thức ‘isinstance’ có thể được sử dụng cùng với đệ quy.

Đệ quy tính toán đầu ra của các bit nhỏ của bài toán lớn hơn và kết hợp các bit này để đưa ra giải pháp cho bài toán lớn hơn.

Ví dụ

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

def flatten_list(my_list):
   if my_list == []:
      return my_list
   if isinstance(my_list[0], list):
      return flatten_list(my_list[0]) + flatten_list(my_list[1:])
   return my_list[:1] + flatten_list(my_list[1:])
my_list = [[1,2],[3,4], [90, 11], [56, 78], [[34,56]]]
print("The list is :")
print(my_list)
print("The list after flattening is : ")
print(flatten_list(my_list))

Đầu ra

The list is :
[[1, 2], [3, 4], [90, 11], [56, 78], [[34, 56]]]
The list after flattening is :
[1, 2, 3, 4, 90, 11, 56, 78, 34, 56]

Giải thích

  • Một phương thức có tên là "flatten_list" được xác định, phương thức này nhận một danh sách làm tham số.
  • Nó sẽ kiểm tra xem kiểu dữ liệu của phần tử đầu tiên trong danh sách.
  • Nếu nó khớp với một danh sách thì phần tử đầu tiên cùng với phần tử thứ hai với phần tử cuối cùng sẽ được nối và hiển thị.
  • Điều này dẫn đến việc làm phẳng danh sách lồng nhau.
  • Nếu không, phần tử đầu tiên sẽ bị loại bỏ và danh sách sẽ được đảo ngược đầu tiên và danh sách bình thường được kết hợp và trả về dưới dạng đầu ra.
  • Bên ngoài hàm, một danh sách lồng nhau được xác định và hiển thị trên bảng điều khiển.
  • Phương thức được gọi bằng cách chuyển danh sách dưới dạng tham số.
  • Kết quả đầu ra được hiển thị trên bảng điều khiển.