매일 매일 미라클 코딩

유용한 파이썬 문법 - 자료구조형 Data Type (튜플/셋) 본문

알고리즘/PYTHON

유용한 파이썬 문법 - 자료구조형 Data Type (튜플/셋)

뚜벅-뚜벅 2021. 4. 22. 15:06

 

리스트 타입은 원래도 많이 쓰지만

튜플, 셋, 딕셔너리 타입은 데이터 타입의 속성만 알아도 해결할 수 있는 문제가 많아진다.

 


튜플: 값을 여러개 묶어서 하나처럼 사용한다. 순서가 중요하며 읽기 전용이다

a,b,c, = 10,20,30
(a,b,c) = (b,c,a) 	#튜플 객체 끼리의 복사
print(a,b,c)		#결과: [20, 30, 10]

def arith(a,b):
	return a+b, a-b, a*b, a/b #파이썬에서는 한번에 여러개 리턴이 가능하다. 튜플 타입으로 반환하기 때문.

n1, n2, n3, n4 = arith(4,2)
print(n1, n2, n3, n4)

#결과 : 6, 2, 8, 2.0



셋: 순서가 없는 집합. 중괄호 { } 를 사용한다.

합집합, 교집합, 차집합 개념을 직접 연산으로 옮기는 함수를 제공한다.

코딩테스트에서 매우 유용하다. 

a={1,2,3,4}
b={3,4,5,6}

c = a.union(b) #합집합연산
print(c)

c = a.intersection(b) #교집합 연산
print(c)

c= a-b #차집합연산
print(c,type(c))

결과:

{1, 2, 3, 4, 5, 6}
{3, 4}

{1, 2} set<class 'set'>

 

 

형변환

리스트 - 튜플 - 셋 간에는 자유로운 변환이 가능하다

 

a= [1,2,3,3,4,5,5,5,6,7]
print(a,type(a))

b=set(a)			
print(b,type(b))		#결과: {1,2,3,4,5,6,7} <class 'set'>

c=tuple(b)
print(c,type(c))		#결과: (1,2,3,4,5,6,7) <class 'tuple'>

 

set() 함수로 리스트를 집합으로 변경하면 중복되는 원소가 사라진 것을 볼 수 있다.

tuple() 함수를 사용하면 중괄호에서 소괄호로 변경된다. 

 

값 삭제, 추가

s = set([1,2,3])

s.add(4)				 # ([1,2,3,4])
s.update([3,4,5,6])		 # ([1,2,3,4,5,6])
s.remove([3])			 # ([1,2,4,5,6])

한개의 값을 추가 할 때는 add(), 여러 원소를 추가할 때는 update() 를 사용한다.

집합 자료형이므로 중복은 제거된 채 원소를 추가한다.

특정 값을 제거할 때는 remove() 를 이용한다.