2019년 1월 17일 목요일

파이썬 튜플&딕셔너리(Python tuple & dictionary)


튜플 자료형(tuple)


tuple은 list와 다르게 ()로 둘러쌓여있고
값의 변경이 불가능하다

예시)

 tuple1 = ()                            //빈 tuple생성
 tuple2 = (1,)                          //tuple의 element가 1개일때 뒤에 , 붙이자
 tuple3 = (1, 2, 3)                 
 tuple4 = 1, 2, 3                      //괄호생략가능
 tuple5 = ('a', 'b', ('ab', 'cd'))       //튜플안에 튜플 넣을 수 있다.


이런 애들이 tuple인데 list에 비해서 값의 변경이 불가능하므로 쓰임이 덜하다
del 로 지울수도 없다

그치만 나머지 부분에서는 List랑 동일하게 사용가능(인덱싱,슬라이싱,+,*)하므로
List부분을 참고하도록 하자(심지어 len(tuple))도 사용가능하다

파이썬 List의 활용


딕셔너리(dictionaray)


이런것들을 다른 언어에서는 Associative array/Hash 이렇게 부르기도 하는데
key값과 value로 이루어진 자료형이다. 순서가 없다.

이때 key값은 중복이 되지않고 (늦게 추가한 key와 value값으로 바뀐다)
key값으로는 변하는 값이면 사용할수 없는데 대표적으로 list는 사용하지 못한다


형식) 
 { key1 : value1 , key2 : value2, key3:value3}

예시)
 {     '이름' : '옹식'    ,     '나이' : 4    ,    '성격' : [ '차분' , '침착' ]    }

이런식으로 value값으로 여러 자료형을 받을수 있다.


뿐만아니라 값의 추가는
dictionaryname[추가할key] = value값 이런 방식으로 추가해 줄수 있다.

예시) mydict = { 1 : 'a' , 2: 'b'}
       mydict[3] = 'c' 
       mydict  = { 1 : 'a' , 2 : 'b' , 3 : 'c'}

Dictionary의 함수


del mydict[key]      :    key값에 해당하는 key와 value를 삭제해준다


mydict.keys()         :    dict_keys라는 객체를 리턴해준다 (파이썬 3.0 이후에)
                              이때 만약 list가 필요하면 list(mydict.keys())를 해주자
                              (파이썬 3.0 이전에는 리스트를 리턴한다)

                              ፠ 이때 객체들은 리스트로 변환안해도
                                  iterable하므로 for문이나 iterate한 구문에 사용할 수 있다


mydict.values()        :   value객체를 리턴해준다


mydict.items()         :   key와 value를 튜플로 묶은 객체 반환
                              예시) dict_items([('key','value'),...])


mydict.clear()          :   dictionary안의 모든 객체를 지운다
                               mydict = {}가 된다


mydict.get(key)                  :   key값에 해당하는 value를 리턴한다
                                         이때 key값이 없으면 None을 리턴한다

mydict.get(key, default값)     :   해당하는 key값이 없으면 default값을 리턴

dictionary[key]                   :   key값에 해당하는 value를 리턴하는데
                                         key값이 없으면 에러를 리턴한다


፠ key in dictionary 를 통해서 dictionary안에 key가 있는지 확인 할수 있다

가장 많이 본 글