본문 바로가기

🐍Python

[TIL] 파이썬 List, Tuple, Set

다양한 값을 덩어리로 묶는데 사용되는 컨테이너 데이터 타입인 'Collections' 안에는 `List, Tuple, Set` 등이 있다. 오늘은 이 세가지의 차이점을 복습해보겠다. 

 

List

a = [1, 2, 3, 4, 5] 대괄호를 사용한다.
1) list는 mutable type으로 수정 가능하며 값 중복을 허용한다.
2) 여러개의 list는 기호 연산자 +를 통해 하나의 list로 합칠 수 있다.
3) list는 내장함수 del을 사용해 삭제할 수 있다. 
a = [1, 2, 3, 4, 5]  
b = [3, 4, 5, 6, 7] 

print(a+b)
[1, 2, 3, 4, 5, 3, 4, 5, 6, 7]  


#두 리스트에 있는 3,4,5가 중복되어도 제거없이 모두 출력된다.

a[2] = "짝" 

print(a)
[1, 2, '짝', 4, 5]  


* index = 0번째, 1번째, 2번째, 3번째, 4번째. 여기서 '짝'의 index = 2 이다. 

#리스트 안 데이터를 수정할 수 있다. 데이터가 교체된다.
#데이터 순서를 인덱스라고 부르는데, 인덱스는 0부터 시작한다.

del a[2] 
[1, 2, 4, 5] 



#리스트 데이터를 수정하거나 제거할 수 있다. index= 2인 '짝'이 삭제되었다.

 


 

Tuple

a = (1, 2, 3, 4, 5) 소괄호를 사용한다. 
1) tuple은 immutable type으로 수정이 불가능하며, 값 중복을 허용한다.
2) 여러개의 tuple은 기호 연산자 +를 통해 하나의 tuple로 합칠 수 있다.
3) tuple은 데이터를 수정하거나 del을 사용해 데이터를 삭제할 수 없다.
a = (1, 2, 3, 4, 5)  
b = (3, 4, 5, 6, 7) 

print(a+b) 
(1, 2, 3, 4, 5, 3, 4, 5, 6, 7) 


#두 튜플에 있는 3,4,5가 중복되어도 제거없이 모두 출력된다.

a[2] = "튜플" 

print(a) 
TypeError: 'tuple' object does not support item assignment 


#튜플은 데이터를 수정할 수 없다. 

del a[2] 

print(a)
TypeError: 'tuple' object doesn't support item deletion 


#튜플은 데이터를 삭제할 수 없다.

 


 

Set

a = {1, 2, 3, 4, 5} 중괄호를 사용한다. 
1) set은 값 중복을 허용하지 않는다.
2) 데이터 값의 순서가 없어 index로 접근할 수 없다. 
a = {} 

type(a)
dict 


#dict도 중괄호를 사용하기 때문에, set은 {}로만 생성되지 않는다. 

a = set()

type(a) 
set 


#물론 set 설정 없이 a = {1,2,3} 데이터 값을 넣어 만들 수 있다.

a = {1, 3, 4, 3, 3, 3, 3, 3, 4, 5, 6, 7} 
print(a) {1, 3, 4, 5, 6, 7} 


# 중복값인 3, 4가 각각 하나씩만 남고 삭제되었다. 

a[2]=10 
print(a)
TypeError: 'set' object does not support item assignment del 

a[2]
print(a)
TypeError: 'set' object does not support item assignment 


# 인덱스로 접근할 수 없기 때문에 원하는 위치에 값을 추가하거나, 제거할 수 없다.