ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 의 자료구조와 비교하며 설명을 해보았습니다.

    감사합니다.

Designed by Tistory.