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

Làm phẳng nhiều danh sách thành nhiều bộ trong Python

Khi được yêu cầu san phẳng tuple của một danh sách thành từng tuple, một phương thức được xác định, nhận đầu vào là tuple.

Tuple được lặp đi lặp lại và cùng một phương thức được gọi lặp đi lặp lại cho đến khi thu được kết quả.

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

Ví dụ

def flatten_tuple(my_tuple):

   if isinstance(my_tuple, tuple) and len(my_tuple) == 2 and not isinstance(my_tuple[0], tuple):
      my_result = [my_tuple]
      return tuple(my_result)

   my_result = []
   for sub in my_tuple:
      my_result += flatten_tuple(sub)
   return tuple(my_result)

my_tuple = ((35, 46), ((67, 70), (8, 11), (10, 111)), (((21, 12), (3, 4))))

print("The tuple is : " )
print(my_tuple)

my_result = flatten_tuple(my_tuple)

print("The flattened tuple is : ")
print(my_result)

Đầu ra

The tuple is :
((35, 46), ((67, 70), (8, 11), (10, 111)), ((21, 12), (3, 4)))
The flattened tuple is :
((35, 46), (67, 70), (8, 11), (10, 111), (21, 12), (3, 4))

Giải thích

  • Một phương thức có tên ‘flatten_tuple’ được xác định, lấy một tuple làm tham số.

  • Nó kiểm tra xem tuple có thực sự là một tuple hay không và độ dài của tuple có bằng 2.

  • Nếu vậy, nó được trả về dưới dạng đầu ra.

  • Hơn nữa, một danh sách trống được xác định.

  • Tuple lại được lặp lại và các phần tử từ tuple phẳng được thêm vào danh sách này.

  • Nó được trả về dưới dạng đầu ra cuối cùng.

  • Một bộ tuple được xác định bên ngoài phương thức và được hiển thị trên bảng điều khiển.

  • Phương thức này được gọi bằng cách chuyển bộ tuple này làm tham số.

  • Đầu ra được hiển thị trên bảng điều khiển.