여러 변수, 값들을 처리하기 쉽게 해주는 자료구조(data Structures)에 대한 게시글!
수정
- list
: 수정 가능- tuple
: 한번 선언되면 수정이 불가능
용량 차지
- list
: 수정 가능한 대신 많은 용량을 차지한다
: 중요한 정보 표현에 사용- tuple
: 수정이 불가능한 대신 적은 용량을 차지한다
: 간단하고 불변한 정보 표현에 사용
둘다 중괄호를 사용해서 선언하지만,
Set은 중복되는 값을 저장할 수 없어 치환되며 교집합, 합집합을 구할 수 있다.
Dictionary는 key, value의 값으로 이루어져있다.
추가
- Set
: add( ) 함수 통해 추가- Dictionary
: ["key값"] 통해 추가 (index 사용 X)
삭제
- Set
: remove( ) 함수 사용- Dictionary
: del 키워드 사용
list와 비슷하지만, 차이점이 있다
선언하기
my_tuple = (1, 2, 3)
- 일반 괄호를 사용한다
- 요소를 읽어들이는 방법, slicing은 모두 list와 동일
ex) 좌표
coords = [ (4,4), (5,2), (-2, 2), (-3, -4) ]
👆🏻 이러한 식으로 tuple은 주로 list와 같이 쓰인다
list의 요소들로 tuple을 사용하는 것!
물론 list를 통해서도 동일한 데이터 표현이 가능하지만, tuple이 더 효과적이다.
why?
- list는 수정이 가능하고 여러 요소들을 저장할 수 있어서
tuple보다 차지하는 메모리 용량이 더 크다
: 더 많은 기능, flexibility를 제공해서 어쩔수 없이 용량이 커지는 것- tuple은 제한적인 만큼 용량이 더 적다
: 수정이 필요없고 간단한 형태의 데이터 표현에 효과적
리스트와 마찬가지로 여러 다양한 타입의 요소(element) 저장 가능
Set
- 요소들이 순서대로 저장되지 X
: ordering이 없어
for looping에서 읽어들일 때 무작위 순서대로 나온다- 순서가 없어 indexing이 없다
: n번째 요소를 읽어들일 수 없다- 동일한 값을 가지고 있는 요소가 1개이상 존재할 수 없다
: 중복된 값 저장이 X
: 새로 저장되는 요소와 동일한 값이 존재하면
새로운 요소가 전 요소를 치환(replace) 한다
- 중괄호 { } 를 사용하거나 set( ) 함수를 사용한다
set1 = {1, 2, 3} set2 = set([1, 2, 3])
- 👆🏻 list를 parameter로 전달하기 때문에, list를 set으로 변환하고 싶을 때 set( )함수 사용
set1 = {1, 2, 3, 1} print(set1) {1, 2, 3} set2 = set([1, 2, 3, 1]) print(set2) {1, 2, 3}
- 👆🏻 중복된 값이 저장이 안되므로, 중복 시 맨 나중에 저장되는 요소만 남게 된다
list의 경우, 맨 뒤에 elements가 추가되는 것이므로 append라는 함수를 사용하지만,
set은 요소들이 순차적으로 저장되지 않으므로 append라는 함수가 어울리지 않는다.
add( )
my_set = {1, 2, 3} my_set.add(4) print(my_set) {1, 2, 3, 4}
remove( )
my_set = {1, 2, 3} my_set.remove(3) print(my_set) {1, 2}
Set에 어떠한 값이 이미 포함되어 있는지 알아보는 것!
in 키워드를 사용한다
my_set = {1, 2, 3}
if 1 in my_set:
print("1 is in the set")
> 1 is in the set
if 4 not in my_set:
print("4 is not in the set")
> 4 is not in the set
- 교집합
: & 키워드 혹은 intersection 함수 사용set1 = {1, 2, 3, 4, 5, 6} set2 = {4, 5, 6, 7, 8, 9} - print(set1 & set2) {4, 5, 6} - print(set1.intersection(set2)) {4, 5, 6}
- 합집합
: | 키워드 혹은 union 함수 사용print(set1 | set2) {1, 2, 3, 4, 5, 6, 7, 8, 9} print(set1.union(set2)) {1, 2, 3, 4, 5, 6, 7, 8, 9}
Dictionary
python my_dic = { "key1" : "value1", "key2" : "value2"}
- 중괄호 { } 를 사용해 dictionary를 선언한다.
- key 와 value 의 값으로 이루어져 있다. key 값이 먼저 나오고 그리고 : 이 위치하고 그 다음에 value 값이 나온다.
- 각각의 key : value 들은 comma 로 구분한다.
index를 사용하지 않고, key값을 통해 읽어들인다.
dict1 = { 1 : "one", 1 : "two" }
print(dict1)
> { 1: "two" }
dictionary_name[new_key] = new_value
👆🏻 동일한 key가 이미 존재하면 새로 추가되는 요소가 그 전의 요소 치환
index가 아닌 key값을 사용한다
my_dict = { "one": 1, 2: "two", 3 : "three" }
my_dict["four"] = 4
print(my_dict)
> {'one': 1, 2: 'two', 3: 'three', 'four': 4
처음부터 비어있는 dictionary를 만든 뒤 하나씩 추가해 나가는 것도 가능!
요소가 없는 중괄호를 사용해서 빈 dictionary 선언 한 뒤 추가하기👇🏻
python
my_dict = { }
my_dict[1] = "one"
my_dict[2] = "two"
> {1: 'one', 2: 'two'}
역시나 key값을 사용해서 삭제한다
del 키워드를 사용해서 삭제!
my_dict = { "one": 1, 2: "two", 3 : "three" }
del my_dict["one"]
print(my_dict)
> {2: 'two', 3: 'three'}