본문 바로가기
PYTHON/파이썬 기초

[PYTHON] 튜플, 집합

by G허니 2024. 2. 25.
튜플

 

튜플은 리스트와 매우 비슷하게 동작하는데요,튜플은 리스트와 비슷하게 여러 요소를 담을 수 있지만, 한 번 만들어진 튜플의 요소는 변경할 수 없습니다. 이 특징 때문에 튜플은 데이터를 안전하게 보관하고 싶을 때 유용하게 사용됩니다. 또한, 리스트와는 다르게 튜플은 괄호를 생략할 수 있습니다.

 

 

튜플 만들기

 

튜플은 소괄호 '()'를 사용하여 요소들을 감싸서 생성합니다. 하지만 괄호는 생략 가능하며, 이는 튜플만의 독특한 특징입니다.

# 튜플 생성
score = (90, 85, 70)  # 소괄호 사용
score2 = 90, 85, 70   # 괄호 생략

 

# 빈 튜플 만들기
score = tuple()

# 요소가 하나인 튜플 만들기
score = (90, )  # 90,

# 튜플을 잘못 만든 예
score = (90)

 

튜플의 요소 변경 (vs 리스트)


리스트와는 달리 튜플의 요소는 변경할 수 없습니다. 이를 불변성(Immutability)라고 합니다. 이미 생성된 튜플의 요소를 변경하려고 시도하면 오류가 발생합니다.

# 튜플 요소 변경 시도
score = (90, 85, 70)
score[0] = 100  # 오류 발생

 

 

튜플 활용


튜플의 괄호 생략 가능성은 다양한 상황에서 편리합니다. 예를 들어, 여러 변수에 동시에 값을 대입하거나, 함수의 여러 반환값을 각각의 변수에 할당할 수 있습니다.

# 여러 변수에 동시에 값 대입
a, b, c = 10, 20, 30

# 함수 반환값을 각각의 변수에 대입
x, y = divmod(45, 20)  # 몫과 나머지를 반환하는 divmod 함수

 


집합

 

집합은 중복을 허용하지 않고, 순서가 없는 자료형입니다. 이런 특성 덕분에 집합은 데이터 분석이나 알고리즘 문제 해결에 많이 사용됩니다.

 

집합 만들기


파이썬의 집합은 중괄호 {}를 사용하여 만들 수 있습니다. 각 요소는 쉼표 ,로 구분합니다. 이때, 중복된 요소가 있다면 하나만 남기고 나머지는 모두 제거됩니다.

# 집합 생성
nums = {1,2,3,4,5,6,7,8,9}

 

또는 set() 함수를 사용하여 다른 자료형을 집합으로 변환할 수 있습니다. 이때, 원래의 순서는 보장되지 않습니다

# 문자열을 집합으로 변환
chars = set('Hello')

 

집합의 정보 확인하기


len() 함수를 사용하면 집합의 요소 개수를 알 수 있습니다. 또한 in 연산자를 사용하면 특정 요소가 집합에 포함되어 있는지 확인할 수 있습니다.

# 집합 생성
members = {'홍길동', '한사랑', '일지매', '박여인'}

#소 개수 확인
print(len(members))  # 출력:4

# 원 포함 여부 확인
print('홍길동' in members)  # 출력:

 

집합 활용하기


집합의 중요한 특성 중 하나는 중복된 요소를 자동으로 제거한다는 것입니다. 이 특성을 활용하면 리스트나 튜플에서 중복된 요소를 쉽게 제거할 수 있습니다.

# 리스트에서 중된 요소 제거
nums = [1, 2, 3, 2, 2, 3, 1, 1, 4, 5]
nums = list(set(nums))  # 출력: [1, 2, 3, 4, 5]

 

 

집합의 연산


파이썬의 집합 자료형은 합집합, 교집합과 차집합 등의 수학적 집합 연산을 지원합니다.

 

  • 합집합: 두 집합의 모든 요소를 포함하는 집합을 만듭니다. | 연산자나 union() 메서드를 사용합니다.
  • 교집합: 두 집합에 공통으로 포함된 요소만을 포함하는 집합을 만듭니다. & 연산자나 intersection() 메서드를 사용합니다.
  • 차집합: 한 집합에서 다른 집합에 포함된 요소를 제거한 집합을 만듭니다. - 연산자나 difference() 메서드를 사용합니다.
  • 대칭 차집합: 두 집합의 합집합에서 교집합을 제거한 집합을 만듭니다. ^ 연산자나 symmetric_difference() 메서드를 사용합니다.
# 집합 생성
set1 = {'apple', 'banana', 'cherry'}
set2 = {'banana', 'cherry', 'durian'}

# 합집합
set3 = set1 | set2
print(set3)  # {'cherry', 'apple', 'banana', 'durian'}

# 교집합
set3 = set1 & set2
print(set3)  # {'banana', 'cherry'}

# 차집합
set3 = set1 - set2
print(set3)  # {'apple'}

# 대칭 차집합
set3 = set1 ^ set2
print(set3)  # {'apple', 'durian'}

 

 

집합의 메서드


파이썬의 집합 자료형은 요소를 추가, 삭제하는 등의 작업을 위한 메서드를 제공합니다.

  • add(element): 집합에 하나의 요소를 추가합니다.
  • update(iterable): 집합에 여러 요소를 추가합니다.
  • remove(element): 집합에서 특정 요소를 삭제합니다. 요소가 집합에 없으면 오류를 발생시킵니다.
  • discard(element): 집합에서 특정 요소를 삭제합니다. 요소가 집합에 없어도 오류를 발생시키지 않습니다.
  • pop(): 집합에서 임의의 요소를 삭제하고 그 요소를 반환합니다. 집합이 비어 있으면 오류를 발생시킵니다.
  • clear(): 집합의 모든 요소를 삭제합니다.
# 집합 생성
fruit_set = {'apple', 'banana', 'cherry'}

# 요소 추가
fruit_set.add('durian')
print(fruit_set)  # {'cherry', 'apple', 'banana', 'durian'}

# 여러 요소 추가
fruit_set.update(['grape', 'mango'])
print(fruit_set)  # {'cherry', 'apple', 'grape', 'banana', 'mango', 'durian'}

# 요소 삭제
fruit_set.remove('apple')
print(fruit_set)  # {'cherry', 'grape', 'banana', 'mango', 'durian'}

# 요소 삭제 (오류 무시)
fruit_set.discard('apple')
print(fruit_set)  # {'cherry', 'grape', 'banana', 'mango', 'durian'}

# 임의의 요소 삭제
fruit = fruit_set.pop()
print(fruit)
print(fruit_set)

# 모든 요소 삭제
fruit_set.clear()
print(fruit_set)  # set()

'PYTHON > 파이썬 기초' 카테고리의 다른 글

[PYTHON] 제어문 (IF문 조건문, FOR문 반복문)  (1) 2024.02.26
[PYTHON] 딕셔너리  (0) 2024.02.25
[PYTHON] 리스트  (0) 2024.02.25
[PYTHON] 문자열 자료형  (0) 2024.02.25
[PYTHON] 연산자와 기본 자료형  (1) 2024.02.25