-
Python 자료구조 정리 ( javascript와 비교, List, Tuple, Set, Dictionary)IT/Python 2023. 1. 17. 16:17
- python의 대표적인 자료구조는
- list, Tuple, set, dictionary 4가지 입니다.
List [ ]
- list는 js의 배열과 같다고 생각하시면 됩니다.
li1 = list(range(5)); print(li) # li1 = [1,2,3,4]- 기본 사용 방법으로
li = [1,2,3,4,5] print(li[0]) # 1 print(li.clear()) # [] 빈 list가 생성됩니다 print(li.append(6)) # [1,2,3,4,5,6] print(li.insert(3,'hello') # [1,2,'hello',3,4,5] # 등 count, extend, pop, remove, sort 메소드가 존재합니다- list는 javascript의 배열과 유사한 형태를 띄고있으며 사용법 또한 유사합니다.
Tuple ( )
- 튜플은 리스트와 굉장히 유사하나 수정, 추가, 삭제가 불가능합니다
- 물론, 리스트로 변형한 뒤 데이터를 추가하고 다시 튜플로 변형하는 식의 우회로는 존재하지만 그렇게 사용을 하게 된다면 처음부터 리스트로 작성하는게 낫습니다.
- 그럼에도 튜플을 사용하는 이유는 리스트 보다 속도가 빠르고, 변형되면 안되는 기준점이 되는 데이터가 있다면 Tuple로 만드시는 것을 추천합니다.
- 또한, 보안성이 뛰어납니다.
- javscript 식으로 이야기한다면 const로 만든 배열이라고 생각하시면 편하실 것 같습니다
tu = ( 1,2,3,4 ) type(tu) # tuple- 튜플은 ( ) 괄호를 사용하여 작성하게 되며 2개의 튜플 만들어 합치는 것은 가능합니다.
- 그 외의 수정법은 우회방식밖에 없으나 앞서 말했듯 우회 보다는 list를 사용하시는게 낫습니다.
Set { }
- 중복을 허용하지 않는 데이터 집합입니다.
se1 = set({1,2,3}) se2 = set('hello') print(se1) # 1, 2, 3 print(se2) # 'e', 'l','o','h'- set의 사용방법은 { } 괄호를 사용하는 것이며 순서가 존재하지않습니다.
- javscript의 비교 보다는 c++ 언어의 set 함수와 굉장히 유사하다고 생각하시면 될 것 같습니다.
Dictionary { }
- javscript의 오브젝트 형식의 자료 구조 입니다
dic1 = { 'name': 'Jin', 'age' : 10}; dic2 = dict( name = 'Jin', age = 15); # 2가지 방식으로도 생성할 수 있습니다 print(dic1['name']) # Jin print(dic1['dog']) # 에러 발생 print(dic1.get('dog')) # None # 으로 null 값 핸들링도 가능합니다.- 다른 데이터 구조는 list1 + list2, tuple1 + tuple2 의 형식으로 데이터 병합이 가능하지만
- 딕셔너리는 가변키워드 인자라고 하는 것을 사용해야합니다.
- javascript의 스프레드 문법과 유사하다고 생각합니다
dic1 = {’name’ : ‘gunny’ , ‘age’ : 30} dic2 = {’num’ : 1 } dic1.update(dic2) # 합쳐지지만 dic1의 원본 데이터가 변형이 된다. # 혹은 다른 변수에 받으면 되지않을까 했지만 안된다. dic3 = dic1.update(dic2) print(dic3) # None; dic3 = dict(dic1, **dic2) # dic3 라는 새롭고 합쳐진 데이터가 생성된다. ** 가변키워드 인자이상으로 파이썬의 자료구조를 javascript 의 자료구조와 비교하며 설명을 해보았습니다.
감사합니다.