파이썬에서 문자열의 순열
-
itertools.permutations()
함수를 사용하여 Python에서 문자열의 모든 순열을 반환합니다 - Python에서 문자열에 대한 모든 순열을 반환하는 사용자 정의 함수 만들기
순열이란 재 배열 순서를 고려하지 않고 고유 한 방식으로 주어진 요소 수에 대해 가능한 총 재 배열 수를 의미합니다.
우리가 아는 것처럼 문자열은 개별 문자의 모음으로 생각할 수 있습니다.
이 기사에서는 주어진 문자열에 대해 가능한 모든 순열을 찾으려고 노력할 것입니다.
itertools.permutations()
함수를 사용하여 Python에서 문자열의 모든 순열을 반환합니다
itertools
모듈은 다른 반복 가능한 객체를 만들고 작업하는 데 사용됩니다. 이 모듈의permutations()
함수는 주어진 값 세트에 대해 가능한 모든 배열을 리턴 할 수 있습니다.
요소의 가능한 배열을 포함하는 튜플을 포함하는itertools
유형 객체를 반환합니다. 목록을 사용하여이 개체의 요소를 볼 수 있습니다. 이 함수를 문자열과 함께 사용할 수도 있습니다.
예를 들면
from itertools import permutations
lst = list(permutations("day"))
print(lst)
출력:
[('d', 'a', 'y'), ('d', 'y', 'a'), ('a', 'd', 'y'), ('a', 'y', 'd'), ('y', 'd', 'a'), ('y', 'a', 'd')]
문자 배열을 포함하는 출력에 생성 된 튜플을 확인하십시오. join () 함수와 list comprehension 메서드를 사용하여 이것을 문자열 목록으로 변경할 수 있습니다.
다음 코드를 참조하십시오.
from itertools import permutations
lst = ["".join(p) for p in permutations("day")]
print(lst)
출력:
['day', 'dya', 'ady', 'ayd', 'yda', 'yad']
join()
함수를 사용하여 튜플 요소를 결합하고 목록을 반복하여 각 튜플에 사용합니다.
Python에서 문자열에 대한 모든 순열을 반환하는 사용자 정의 함수 만들기
문자열의 모든 순열을 찾는 간단한 함수를 만들 수 있습니다. 재귀 함수를 만들 것입니다. 이 메서드에서는 문자열 요소를 한 번만 교체하고 새로운 배열로 함수를 다시 호출합니다. 최종 준비를 표시합니다.
다음 코드에서 위의 논리를 구현합니다.
def string_permutations(s, i, n):
if i == n:
print("".join(s))
else:
for j in range(i, n):
s[i], s[j] = s[j], s[i]
string_permutations(s, i + 1, n)
s[i], s[j] = s[j], s[i]
a = "day"
x = len(a)
s = list(a)
print(permute(s, 0, x))
출력:
day
dya
ady
ayd
yad
yda
None
보시다시피 시작 위치와 끝 위치는 재 배열을 완료 할 위치를 지정합니다. 문자열은 문자 목록으로도 전달됩니다. 가능한 모든 순열을 찾기 위해 시작을 0으로 설정하고 끝을 문자열의 길이로 설정합니다.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn