[파이썬] itertools 사용하는 법 - 경우의 수

2022. 1. 20. 13:30·Python/파이썬 함수

 

1. 경우의 수


  • permutations() - 순열

순열은 순서를 고려해서 뽑는 경우의 수다.

nPr 로 쓰이는데 이를 풀어서 말하면 n개 중 순서를 고려하여 r개를 뽑는 것을 말한다.

 

-예시

num = [2,1,3,4,1]
result = list(itertools.permutations(num, 2))

 

- 결과값

>> [(2, 1), (2, 3), (2, 4), (2, 1), (1, 2), (1, 3), 
  (1, 4), (1, 1), (3, 2), (3, 1), (3, 4), (3, 1), (4, 2), 
  (4, 1), (4, 3), (4, 1), (1, 2), (1, 1), (1, 3), (1, 4)]
  • 1이 2개 있기때문에 중복된 결과가 나온다.

 

 

 

  • combinations() - 조합

조합이라고 하면 nCr 을 많이 떠올릴 것이다.

n개 중에서 순서를 무시하고 단순히 r개를 뽑기만 하는 경우의 수이다.

 

이제 함수를 살펴보자.

itertools.combinations(순회가능한 데이터, 뽑는 수)의 형태이다.

 

- 예시

num = [2,1,3,4,1]
result = list(itertools.combinations(numbers, 2))

 

- 결과

>> [(2, 1), (2, 3), (2, 4), (2, 1), (1, 3), (1, 4), (1, 1), (3, 4), (3, 1), (4, 1)]
  • 겹치는 수가 있기때문에 똑같은 경우가 나온다.

 

 

 

2. 그 외


  • 무한 이터레이터 (cycle, count, repeat)
  • 가장 짧은 입력 시퀀스에 종료되는 이터레이터(accumulate, chain 등등)

더 알아보고 싶다면 아래 파이썬 라이브러리 도큐먼트에 들어가서 확인하길 바란다!

 

파이썬 itertools 확인하기!

 

itertools — 효율적인 루핑을 위한 이터레이터를 만드는 함수 — Python 3.10.2 문서

 

docs.python.org

 

'Python/파이썬 함수' 카테고리의 다른 글
  • [파이썬] 파이썬에서 스택 & 큐 구현하기
  • [파이썬] 내가 보려고 만든 문자열 함수 2
  • [파이썬] 람다식 쓰는법
  • [파이썬] 내가 보려고 만든 문자열 함수
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    java
    부스트캠프 7기
    웹개발
    MySQL
    os
    자바
    운영체제
    부스트캠프 멤버십
    Git
    알고리즘
    Spring
    부스트캠프
    스프링
    파이썬
    jsp
    자바스크립트
    오류해결
    스프링부트
    Python
    GitHub
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[파이썬] itertools 사용하는 법 - 경우의 수
상단으로

티스토리툴바