본문 바로가기
Python 코딩도장

파이썬 코딩도장 Unit 26 정리(5) - 반복문, 세트 표현식 사용

by chanfficial 2022. 2. 11.

5. 반복문으로 세트의 요소를 모두 출력하기

  • 세트와 for 반복문을 사용하여 요소를 출력할 때, for in 뒤에 세트만 지정하면 된다.
    for 변수 in 세트:
         반복할 코드​
    # for로 세트 a의 요소를 출력
    >>> a = {1, 2, 3, 4}
    >>> for i in a:
    ...     print(i)
    ...
    1
    2
    3
    4​
  • for i in a: 는 세트 a에서 요소를 꺼내어 i에 저장하고, 꺼낼 때마다 코드를 반복하므로 print로 i를 출력하면 요소를 모두 출력할 수 있다. 단, 세트의 요소는 순서가 없으므로 출력할 때마다 순서가 달라진다.(숫자로만 이루어진 세트는 순서대로 출력됨)
  • 물론 in 다음에 세트를 직접 지정해도 괜찮다.
    for i in {1, 2, 3, 4}:
        print(i)​

 

6. 세트 표현식 사용하기

  • 세트는 for 반복문과 if 조건문을 사용하여 세트를 생성할 수 있다.
  • 다음과 같이 세트 안에 식과 for 반복문을 지정하면 된다.
    {식 for 변수 in 반복가능한객체}
    set(식 for 변수 in 반복가능한객체)​
    >>> a = {i for i in 'apple'}
    >>> a
    {'l', 'p', 'e', 'a'}​
  • { } 또는 set() 안에 식, for, 변수, in, 반복 가능한 객체를 지정하여 세트를 생성하며, 여기서 반복 가능한 객체는 문자열 'apple' 이다.
  • 아래의 그림과 같이 문자열 'apple' 에서 유일한 문자인 'a', 'p', 'l', 'e' 만 변수 i에 꺼내고 최종적으로 i로 세트를 만드는 것으로, 문자열에서 중복된 문자는 세트에 포함되지 않는다.
    세트 표현식의 동작 순서

6-1. 세트 표현식에 if 조건문 사용하기

  • if 조건문은 for 반복문 뒤에 지정한다.
    {식 for 변수 in 세트 if 조건식}
    set(식 for 변수 in 세트 if 조건식)​
    >>> a = {i for i in 'pineapple' if i not in 'apl'}
    >>> a
    {'e', 'i', 'n'}​
  • {i for i in 'pineapple' if i not in 'apl'}은 문자열 'pineapple' 에서 'a', 'p', 'l' 을 제외한 문자들로 세트를 생성한다.
  • 즉, 아래의 그림과 같이 for 반복문 뒤에 if 조건문을 지정하면 if 조건문에서 특정 요소를 제외한 뒤 세트를 생성한다.
    세트 표현식에서 if 조건문 사용하기
  • if i not in 'apl' 은 {i for i in 'pineapple' if i != 'a' and i != 'p' and i != 'l'} 과 같이 문자를 하나씩 비교하고 and로 연결하는 if 조건문과 같다.

 

※ 세트는 리스트와 딕셔너리보다 사용 빈도가 낮기 때문에 세트가 수학의 집합을 자료형으로 만든 것이라는 정도만 알아두면 된다.