목록에서 분리된 문자열을 찾아야 하는 경우 두 개의 매개변수를 사용하고 'if' 조건과 함께 람다 및 reduce 메서드를 사용하여 결과를 결정하는 메서드가 정의됩니다.
아래는 동일한 데모입니다 -
예시
from functools import reduce def determine_disjoint_pairs(disjoint_data, my_result=[]): if not disjoint_data and not reduce(lambda a, b: set(a) & set(b), my_result): yield tuple(my_result) elif disjoint_data: yield [idx for k in disjoint_data[0] for idx in determine_disjoint_pairs(disjoint_data[1:], my_result + [k])] my_list_1 = ["python", "is", "fun"] my_list_2 = ["its", "awesome", "learning"] print("The first list is : ") print(my_list_1) print("The second list is :") print(my_list_2) my_result = list(determine_disjoint_pairs([my_list_1, my_list_2])) print("The result is :") print(my_result)
출력
The first list is : ['python', 'is', 'fun'] The second list is : ['its', 'awesome', 'learning'] The result is : [('fun', 'its'), ('fun', 'awesome')]
설명
-
두 개의 매개변수를 사용하는 'determine_disjoint_pairs'라는 메서드가 정의되어 있습니다.
-
첫 번째 매개변수가 true가 아니고 두 개의 매개변수와 함께 사용된 'reduce' 및 'lambda' 메서드가 true가 아닌 경우 yield 연산자를 사용하여 결과를 결정하며 이 역시 튜플로 변환됩니다.
-
그렇지 않으면 목록 이해와 함께 yield 연산자가 다른 매개변수 집합으로 메서드를 다시 호출하여 사용됩니다.
-
메서드 외부에서 두 개의 문자열 목록이 정의되어 콘솔에 표시됩니다.
-
이 두 목록을 전달하여 메서드를 호출합니다.
-
리스트로 변환되어 변수에 할당됩니다.
-
이 변수는 콘솔에 출력으로 표시됩니다.