이 글에서는 Python 3.x(및 그 이하 버전)에서 세트(Set)를 반복하거나 순회하는 다양한 방법을 알아보겠습니다.
세트는 중복을 허용하지 않는 순서 없는(unordered) 객체의 집합입니다. 모든 요소를 중괄호 {}로 감싸서 생성할 수 있으며, set() 키워드를 사용한 타입 캐스팅으로도 만들 수 있습니다. 세트는 순서가 없기 때문에 리스트나 튜플처럼 인덱스로 직접 접근할 수 없다는 점이 특징입니다.
방법 1 – 인덱스 없이 이터러블 직접 순회
가장 기본적인 방법으로, for 루프를 사용해 세트의 각 요소를 직접 순회합니다.
예제
set_inp = {'t','u','t','o','r','i','a','l','s','p','o','i','n','t'}
# 세트 순회
for value in set_inp:
print(value, end='')방법 2 – 리스트로 변환 후 인덱스로 접근
세트를 list()로 변환하면 인덱스를 사용할 수 있게 됩니다. 인덱스 기반 처리가 필요할 때 유용합니다.
예제
set_inp = list({'t','u','t','o','r','i','a','l','s','p','o','i','n','t'})
# 세트 순회
for value in range(0, len(set_inp)):
print(set_inp[value], end='')방법 3 – enumerate() 활용
enumerate()를 사용하면 요소와 함께 인덱스도 함께 얻을 수 있어, 위치 정보가 필요한 경우에 적합합니다.
예제
set_inp = {'t','u','t','o','r','i','a','l','s','p','o','i','n','t'}
# 세트 순회
for value, char in enumerate(set_inp):
print(char, end='')방법 4 – 리스트 변환 후 음수 인덱스 사용
Python의 음수 인덱싱을 활용해 세트 끝에서부터 앞쪽으로 순회하는 방법입니다.
예제
set_inp = list({'t','u','t','o','r','i','a','l','s','p','o','i','n','t'})
# 세트 순회
for value in range(-len(set_inp), 0):
print(set_inp[value], end='')위 네 가지 방법은 모두 아래와 같은 결과를 출력합니다. 단, 세트는 순서가 없으므로 실행 시마다 출력 순서는 달라질 수 있습니다.
출력 결과
plsrainuto
방법 5 – 리스트 변환 후 슬라이싱 사용
슬라이싱(slicing)을 이용해 한 번에 하나의 요소씩 잘라내며 순회하는 방법입니다.
예제
set_inp = list({'t','u','t','o','r','i','a','l','s','p','o','i','n','t'})
# 세트 순회
for value in range(1, len(set_inp)):
print(set_inp[value-1:value], end='')
print(set_inp[-1:])출력 결과
['p']['l']['s']['r']['a']['i']['n']['u']['t']['o']
마무리
이번 글에서는 Python에서 세트(Set) 데이터 타입을 반복하고 순회하는 5가지 방법을 살펴보았습니다. 상황에 따라 단순 for 루프, 리스트 변환, enumerate(), 음수 인덱스, 슬라이싱 등 다양한 기법을 선택적으로 활용할 수 있습니다. 특히 세트는 순서가 보장되지 않는 자료구조이므로, 순서가 중요한 작업이라면 리스트로 변환한 후 처리하는 것이 좋습니다.