FrontEnd
Javascript
Diary
ML
CS
Django
Algorithm
AWS
Co-Work
HTML
CSS
Python
React
ReactNative

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부분을 참고하도록 하자

딕셔너리(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 method

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가 있는지 확인 할수 있다