각 문자열 목록에서 각 요소의 가능한 모든 조합을 생성해야합니다.
list1 = ['The girl', 'The boy']
list2 = ['wears', 'touches', 'tries']
list3 = ['a red sweater', 'a blue sweater', 'a yellow sweater', 'a white sweater']
따라서 결과는 각 요소가 서로 결합 된 문자열 목록입니다.
The girl wears a red sweater
The boy wears a red sweater
The girl touches a red sweater
The boy touches a red sweater
The girl wears a blue sweater
The boy wears a yellow sweater
(ETC...)
모든 조합이 얻어지는 한 출력 순서는 특별히 신경 쓰지 않습니다.
내 연구에서 나는 "순열"이 해결책이라고 생각하지만 숫자 목록 순열 또는 문자열의 각 문자 조합에 대한 몇 가지 답변 만 찾았습니다 . 그 어떤 것도 내가 필요한 것이 아닙니다. 목록에 정렬 된 텍스트 블록을 결합해야합니다.
각 문자열 목록에서 서로 다른 요소의 모든 조합을 포함하는 긴 문장 목록을 어떻게 만들 수 있습니까?
감사합니다
itertools의 제품을 사용하면 다음과 같이 간단합니다.
import itertools
["{x} {y} {z}".format(x=x,y=y,z=z) for x,y,z in itertools.product(list1, list2, list3)]
그리고 파이썬 3.6에서는 format
호출을 삭제할 수 있습니다.
[f"{x} {y} {z}" for x,y,z in itertools.product(list1, list2, list3)]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다