Python - List, Dictionary, Tuple, Set

이주명·2021년 11월 8일
0

파이썬에서 사용되는 자료구조 중 많이쓰이는 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}]

append(값 추가)

my_list.append()

append 는 list의 마지막 index에 내가 전달한 값을 정의합니다.

pop(값 추출)

my_list.pop()

pop은 list의 마지막 index에 있는 값을 추출합니다. 이때 list의 index는 -1이 됩니다.

Tuple

Tuple은 List와 비슷하게 요소들을 저장할 때 사용하지만 몇 가지 차이점이 있습니다.

  • 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와 다른점은 다음과 같습니다:

  • List와 다르게 요소들이 순서대로 저장되어 있지 않습니다. 즉 ordering이 없다. 그러므로 for 문에서 읽어들일때 요소들이 순서대로 나오는게 아니라 무작위 순서대로 나옵니다.
  • 순서가 없으므로 indexing도 없습니다. 몇번째 요소를 읽어들이거나 할 수 없습니다.
  • 동일한 값을 가지고 있는 요소가 1개 이상 존재 할 수 없습니다. 즉 중복된 값을 저장할 수 없습니다. 만일 새로 저장하려고 하는 요소와 동일한 값의 요소가 존재한다면 새로운 요소가 이 전 요소를 치환(replace)합니다.

다음과 같이 두가지 방법으로 Set을 생성할 수 있다.

set1 = {1, 2, 3}
set2 = set([1, 2, 3])

여기서 Dictionary와 다른점은 key:value 형태가 아닌 하나의 요소로 이루어져 있는 것이다.

추가 (add)

Set 은 add()라는 함수를 통해 요소 추가가 가능하다.

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)

> {1, 2, 3, 4}

제거 (remove)

Set은 remove()라는 함수를 통해 요소 제거가 가능하다.

my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)

> {1, 2}
profile
oh yeah

0개의 댓글