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

Python - Chia danh sách thành tất cả các cặp tuple có thể có

Khi cần phải chia danh sách thành tất cả các cặp tuple có thể có, một phương thức có thể được xác định để lấy danh sách làm tham số và sử dụng khả năng hiểu danh sách để lặp qua danh sách và sử dụng phương thức ‘mở rộng’

Ví dụ

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

def determine_pairings(my_list):
   if len(my_list) <= 1:
      return [my_list]
   result = [[my_list[0]] + element for element in determine_pairings(my_list[1:])]
   for index in range(1, len(my_list)):
      result.extend([[(my_list[0], my_list[index])] + element for element in determine_pairings(my_list[1: index] + my_list[index + 1:])])

   return result

my_list = [56, 31, 78, 0]

print("The list is :")
print(my_list)

my_result = determine_pairings(my_list)

print("The resultant pairs are :")
print(my_result)

Đầu ra

The list is :
[56, 31, 78, 0]
The resultant pairs are :
[[56, 31, 78, 0], [56, 31, (78, 0)], [56, (31, 78), 0], [56, (31, 0), 78], [(56, 31), 78, 0], [(56, 31), (78, 0)], [(56, 78), 31, 0], [(56, 78), (31, 0)], [(56, 0), 31, 78], [(56, 0), (31, 78)]]

Giải thích

  • Một phương thức có tên là ‘xác định_pairings’ được định nghĩa để sử dụng một danh sách làm tham số.

  • Độ dài của danh sách được kiểm tra là lớn hơn 1.

  • Các phần tử loại trừ phần tử đầu tiên được xem xét và phương thức được gọi lại.

  • Điều này được gán cho một biến.

  • Danh sách được lặp lại nhiều lần và phần tử đầu tiên và phần tử chỉ mục được thêm vào biến.

  • Điều này được trả về dưới dạng đầu ra.