Programming

; develop a program

Back-End/Python

[Python] permutations

Clloud_ 2023. 6. 7. 08:08
반응형

이번 포스팅에서는 파이썬에서 itertools 모듈에 속한 함수인 permutations에 대하여 공부를 해보고자 한다.

 


permutations란

permutationsitertools 모듈에 속한 함수로서, 주어진 iterable(반복 가능한 객체)의 원소들을 조합하여 가능한 모든 순열을 생성하는 기능을 제공한다.

 

permutations 함수는 사전식 순서(lexical order)로 순열을 생성한다.
다시 말해, 결과적으로 생성된 순열은 입력된 iterable의 원소 순서를 따라서 정렬된다.

 

permutations 함수의 기본 구문

permutations(iterable, r=None)
  • iterable: 순열을 생성할 iterable 객체입니다. 일반적으로 리스트나 문자열 등이 사용된다. 
  • r (선택 사항): 순열의 길이를 지정합니다. 기본값은 None으로, 입력된 iterable의 모든 원소를 사용하여 순열을 생성한다. 
    만약 r이 지정되면, 순열의 길이는 r로 제한한다.

 

permutations 함수 itertools.permutations 객체를 반환한다.
이 객체는 순열을 나타내는 튜플을 반환하는 반복 가능한(iterable) 객체이기 때문에, 이 객체를 직접 출력하거나 저장할 수 있고, next( ) 함수for 반복문을 사용하여 순열을 하나씩 접근할 수 있다.

permutations 함수 함수를 사용하면 주어진 iterable에서 원소들을 교환하여 만들 수 있는 모든 가능한 순열을 생성할 수 있다.

 


예시

[1, 2, 3]의 모든 순열을 생성하고 출력하는 코드

from itertools import permutations

# 리스트의 순열 생성
numbers = [1, 2, 3]
perms = permutations(numbers)

for perm in perms:
    print(perm)
    
# 실행 결과
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

 

r 매개변수를 사용하여 순열의 길이를 제한하는 코드

from itertools import permutations

# 문자열의 길이 2인 순열 생성
string = "abc"
perms = permutations(string, r=2)

for perm in perms:
    print(''.join(perm))

# 실행 결과
ab
ac
ba
bc
ca
cb

 


반응형

'Back-End > Python' 카테고리의 다른 글

[Python] strptime, strftime  (0) 2023.06.16
[Python] NumPy(넘파이)  (0) 2023.06.15
[Python] pass와 continue 차이점  (0) 2023.06.03
[Python] load( ) & dumps( )  (0) 2023.06.02
[Python] 람다 방식(lambda)  (0) 2023.05.31