Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 가능한 모든 튜플 쌍으로 목록 분할

<시간/>

목록을 가능한 모든 튜플 쌍으로 분할해야 하는 경우 목록을 매개변수로 사용하고 목록 이해를 사용하여 목록을 반복하고 '확장' 방법을 사용하는 방법을 정의할 수 있습니다.

아래는 동일한 데모입니다.

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)

출력

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)]]

설명

  • 목록을 매개변수로 사용하는 'determine_pairings'라는 메서드가 정의되어 있습니다.

  • 목록의 길이가 1보다 큰지 확인합니다.

  • 첫 번째 요소를 제외한 요소를 고려하여 메서드를 다시 호출합니다.

  • 이것은 변수에 할당됩니다.

  • 목록이 다시 반복되고 첫 번째 요소와 인덱스 요소가 변수에 추가됩니다.

  • 이것은 출력으로 반환됩니다.