[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

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

좋은 웹페이지 즐겨찾기