28.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로 세트를 만듭니다. 즉, 문자열에서 중복된 문자는 세트에 포함되지 않습니다.

그림 28-3 세트 표현식의 동작 순서
그림 28 3 세트 표현식의 동작 순서

이번에는 세트 표현식에서 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 조건문에서 특정 요소를 제외한 뒤 세트를 생성합니다.

그림 28-4 세트 표현식에서 if 조건문 사용하기
그림 28 4 세트 표현식에서 if 조건문 사용하기

if i not in 'apl'{i for i in 'pineapple' if i != 'a' and i != 'p' and i != 'l'}과 같이 문자를 하나씩 비교하고 and로 연결하는 if 조건문과 같습니다.