본문 바로가기
Category/Python

Python에서 집합(set) 생성과 초기값 설정법

by Corinee 2024. 11. 27.
728x90
반응형

Python의 set() 함수는 중복 없는 데이터 구조를 생성할 때 사용됩니다. 이 글에서는 set()을 사용할 때 초기값을 설정하는 다양한 방법과, 그 중 set([a])와 같은 표현에서 대괄호([])의 역할을 포함해 가장 적합한 초기값 설정 방법에 대해 설명하겠습니다.

1. set() 함수란?

set() 함수는 반복 가능한 객체(iterable)를 받아 집합(set)을 생성하는 함수입니다. 집합은 다음과 같은 특징을 가집니다:

  • 중복 제거: 집합 내의 모든 원소는 고유합니다.
  • 순서 없음: 집합은 원소의 순서를 보장하지 않습니다.

예시

# 리스트를 집합으로 변환
numbers = [1, 2, 2, 3]
unique_numbers = set(numbers)
print(unique_numbers)  # {1, 2, 3}

# 문자열을 집합으로 변환
text = "hello"
unique_characters = set(text)
print(unique_characters)  # {'h', 'e', 'l', 'o'}

2. 초기값 설정과 set([a])의 의미

set([a])의 구조

set([a])는 a를 포함하는 집합을 생성하기 위한 표현입니다. 여기서 대괄호([])는 a를 리스트로 감싸 반복 가능한 객체로 만드는 역할을 합니다.

set()은 반복 가능한 객체만 입력으로 받을 수 있으므로, 숫자 a를 직접 넣을 수 없습니다. 이를 해결하기 위해 리스트나 튜플과 같은 반복 가능한 형태로 변환하는 것입니다.

왜 대괄호([])가 필요한가?

  1. set()은 반복 가능한 객체(iterable)가 필요합니다.
  2. 숫자와 같은 단일 값은 반복 가능한 객체가 아니므로 직접 사용하면 에러가 발생합니다.

예시

a = 5

# 에러 발생: 숫자는 반복 가능한 객체가 아님
# visited = set(a)  # TypeError: 'int' object is not iterable

# 정상 작동: 숫자를 리스트로 감싸 반복 가능하게 만듦
visited = set([a])
print(visited)  # {5}

3. 더 간단한 방법: 중괄호({})를 사용

Python에서는 중괄호({})를 사용해 집합을 직접 생성할 수 있습니다. {a}, set([a]), set((a,)) 모두 동일한 집합을 생성합니다. 

예시

a = 5

# set([a]) 방식
visited1 = set([a])

# 더 간단한 {a} 방식
visited2 = {a}

print(visited1)  # {5}
print(visited2)  # {5}

장점

  • 중괄호 방식은 코드가 간결하고, 가독성이 높습니다.
  • 직접 값을 집합으로 초기화하는 경우, 중괄호가 더 효율적입니다.

4. 언제 set([a])를 사용하나?

set([a])는 중괄호를 사용하는 방법에 비해 다소 복잡해 보일 수 있지만, 특정 상황에서는 유용하게 사용할 수 있습니다.

사용 상황:

1. 초기값이 리스트 형태로 이미 존재할 때

initial_values = [5, 10, 15]
visited = set(initial_values)  # 리스트를 집합으로 변환

2. 여러 값을 동적으로 추가해야 할 때

a, b = 5, 10
visited = set([a, b])  # 여러 원소를 포함한 집합 생성

3. 튜플 등 다른 반복 가능한 객체를 변환할 때

initial_tuple = (5, 10, 15)
visited = set(initial_tuple)

5. 초기값 설정 방법 비교

                방식                            코드                                                                          설명

set([a]) set([5]) 리스트를 사용해 집합을 생성. 유연하지만 다소 복잡.
중괄호 {} {5} 가장 간결하고 효율적.
다중 값 변환 set([5, 10]) 리스트나 튜플을 변환할 때 유용.

6. 결론

  • set([a]): 반복 가능한 객체가 필요할 때 유용한 표현.
  • 중괄호 {}: 단일 값 집합 생성 시 더 간단하고 가독성이 높음.
  • 리스트, 튜플 변환: 이미 여러 값이 포함된 자료구조를 집합으로 변환할 때 적합.

추천

1. 단일 값으로 초기화할 때:

visited = {a}

2. 여러 값으로 초기화할 때:

visited = set([a, b, c])

 

Python에서는 가능한 한 간단하고 명확한 코드를 작성하는 것이 중요합니다. 상황에 맞는 초기값 설정 방법을 선택하세요.