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

Python – 목록에서 문자열 분리

<시간/>

목록에서 분리된 문자열을 찾아야 하는 경우 두 개의 매개변수를 사용하고 '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 연산자가 다른 매개변수 집합으로 메서드를 다시 호출하여 사용됩니다.

  • 메서드 외부에서 두 개의 문자열 목록이 정의되어 콘솔에 표시됩니다.

  • 이 두 목록을 전달하여 메서드를 호출합니다.

  • 리스트로 변환되어 변수에 할당됩니다.

  • 이 변수는 콘솔에 출력으로 표시됩니다.