개발기초

파이썬 기초문법 뽀개기 : 튜플과 집합

Veams 2022. 11. 21.

 

튜플 자료형

튜플은 리스트형과 유사하다.

 

리스트는 순서가 있는 자료형이다. 다음 형태이다. 중간에 '감'을 '수박'으로 변경할 수 있다.

a = ['사과', '감', '배']

a[1] = '수박'

print(a)

출력결과 ==>

['사과', '수박', '배']

 

다음은 튜플이다. '순서가 있는 자료형'이라는 점에서 동일하다

하지만 차이점이 느껴지는가? 괄호가 다르다.

a = ('사과', '감', '배')

print(a)

출력결과 ==>

('사과', '', '배')

 

중요한 특징은 '불변형'이다. 즉 요솟값을 바꿀 수 없다.

a = ('사과', '감', '배')

a[1] = '수박'

print(a)

실행결과 ==>  에 발생

Traceback (most recent call last):
  File "C:\Users\mm12\Desktop\sparta_python\hello.py", line 3, in <module>
    a[1] = '수박'
TypeError: 'tuple' object does not support item assignment

 

튜플형은 언제 쓰이는가?

- 프로그램이 실행되는 동안 요솟값이 변하지 않기를 바랄 떄

- 값이 바뀔까 우려가 될 때

 

 

집합  (set)

집합은 리스트형과 동일해보인다. 하지만 다른 점이 있다. 중복을 제거해준다. 

집합은 set 키워드를 사용하여 만들 수 있다.

a = [1,2,3,4,3,2,3,4,5,8,7,1]

a_set = set(a)
print(a_set)

실행결과 ==> 

{1, 2, 3, 4, 5, 7, 8}

 

교집합

a = ['사과','감','배','수박','딸기']
b = ['배', '사과', '포도', '참외', '수박']

a_set = set(a)
b_set = set(b)

print(a_set & b_set)

실행결과 ==>

{'배', '수박', '사과'}

 

합집합

a = ['사과','감','배','수박','딸기']
b = ['배', '사과', '포도', '참외', '수박']

a_set = set(a)
b_set = set(b)

print(a_set | b_set)

실행결과 ==>

{'사과', '딸기', '배', '참외', '감', '포도', '수박'}

 

차집합

student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']

a_set = set(student_a)
b_set = set(student_b)

print(a_set.difference(b_set))
## 다른 형태로도 표현 가능하다.

print(a_set - b_set)

실행결과 ==>

{'물리2', '국어', '음악', '화학1'}
{'물리2', '국어', '음악', '화학1'}

댓글