파이썬에서 사용되는 자료구조 중 많이쓰이는 List, Dictionary, Tuple, Set에 대해서 알아보고 간단한 함수인 추가와 제거에 대해 정의하겠습니다.
List
List는 말그대로 하나의 변수에 여러개의 값을 리스트처럼 넣는것이 가능한 자료구조 입니다.
list를 생성할 때는 [] 를 사용합니다.
my_list = []
또한 어떠한 형태의 자료구조도 list의 값이 될수 있습니다 .
my_list = [1, 2, 3, "hello", [1, 2, 3], (1,2), {"name" : 1, "gender" : 2}]
my_list.append(값)
append 는 list의 마지막 index에 내가 전달한 값을 정의합니다.
my_list.pop(값)
pop은 list의 마지막 index에 있는 값을 추출합니다. 이때 list의 index는 -1이 됩니다.
Tuple
List는 수정이 가능하지만 Tuple은 선언후에 수정이 불가합니다.
[] 대신 () 를 사용합니다.
Tuple은 수정이 필요하지 않은 요소들의 집합에 사용하면 용량을 줄일수 있어서 좋습니다.
my_tuple = (1, 2, 3)
Dictionary
Dictionary의 기본 개념은 list와 같지만 다른점은 Key와 Value값을 갖는 것 입니다.
my_dict = {"name" : "gogimon", "gender" : "man" ...}
예시와 같이 key 값은 "name" 과 "gender"가 되고 그에 따른 value값은 "gogimon"과 "man"이 됩니다.
이로써 값을 찾아낼때 key 값을 이용해 그 value를 꺼내는 형식의 기능이 존재합니다.
dictionary에 요소를 추가하기 위해서는
dictionary_name[new_key] = new_value
를 실행시켜줍니다. 만약 new_key가 이미 dictionary_name에 존재한다면 새로운 new_value 값으로 바뀌게됩니다.
my_dict = { "one": 1, 2: "two", 3 : "three" }
del my_dict["one"]
print(my_dict)
> {2: 'two', 3: 'three'}
del my_list["키값"] 을 입력하게되면 그에 맞는 키 값을 찾아 삭제합니다.
Set
Set은 list의 친척입니다.
List와 마찬가지로 여러 다양한 타입의 요소(element)들을 저장할 수 있습니다.
하지만 list와 동일하다면 set가 있을 이유가 없겠죠. List와 다른점은 다음과 같습니다:
for
문에서 읽어들일때 요소들이 순서대로 나오는게 아니라 무작위 순서대로 나옵니다.다음과 같이 두가지 방법으로 Set을 생성할 수 있다.
set1 = {1, 2, 3}
set2 = set([1, 2, 3])
여기서 Dictionary와 다른점은 key:value 형태가 아닌 하나의 요소로 이루어져 있는 것이다.
Set 은 add()라는 함수를 통해 요소 추가가 가능하다.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)
> {1, 2, 3, 4}
Set은 remove()라는 함수를 통해 요소 제거가 가능하다.
my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)
> {1, 2}