본문 바로가기
Python

python 간단 정리 - (9)

by shinbian11 2020. 2. 24.

이 파일은 제가 python 기초 강의를 들으면서 필기했던 내용들을 간단하게 정리한 것입니다.

 

혹시나 잘못된 정보가 포함되어있을수도 있기 때문에, 

python 내용을 아시는 분들중에 잘못된 내용을 잡아내신 경우에는 댓글을 달아주시길 바랍니다.

 

----------------------------------------------------------------------------------------------------

저는 이미 c언어를 공부한 이후에 파이썬을 공부하고 있는 터라, 필기 내용 자체가 아무래도 c언어와 파이썬의

차이점을 위주로 정리를 했습니다. 그렇기 때문에 python을 아예 모르시는 분은 이 문서를 읽기에 약간 불편함이 

있을수도 있다는 점 양해바랍니다. c언어를 어느정도 알고 이 문서를 보는걸 추천드립니다 ㅎㅎ

저도 아직 초보라 틀린 내용이 있을수 있고, 만약 그 부분을 잡아내신다면 댓글로 알려주시길 바랍니다.

----------------------------------------------------------------------------------------------------

<<딕셔너리>>

> 여러 값을 저장해두고 필요한 값을 꺼내 쓰는 기능
> 이름표(key)를 이용하여 값(value)을 꺼내 사용
> 딕셔너리명 = { 
 '이름표1':'값1'
 '이름표2':'값2'
  }


ex)

wintable = { 
'가위':'보', # 이름표 : 값 
'바위':'가위', # 이름표 : 값 
'보':'바위' # 이름표 : 값 
} 
# print(wintable['가위']) #'가위'라는 이름을 가진 값을 가져오기! 
# list에서는 값을 가져올때 인덱스 번호를 
# 이용했지만, 딕셔너리에서는 그 값에 해당되는 이름표의 이름을 이용한다! 

def rsp(mine, yours): 
    if mine == yours: 
        return 'draw' 
    elif wintable[mine] == yours: 
        return 'win' 
    else: 
        return 'lose' 
         
result = rsp('가위','바위') 


messages = { 
    'win':'이겼다', 
    'draw':'비겼다', 
    'lose': '졌어..' 
} 
print(messages[result]) 



#             ↓ 이름표는 문자열 또는 숫자,튜플을 주로 사용하지만
dict = {     "이름표"    :    [1,2,3] }
#                                  ↑ 값은 리스트를 포함해서 무엇이든 올 수 있습니다.

print( dict["이름표"] )



<<딕셔너리 수정, 추가, 삭제>>

(**이때 dict, list는 dict, list의 이름이다. 진짜 list,dict 이렇게 적는게 아님!**)


리스트의 값을 수정하고 싶을땐 list[인덱스 번호] = 수정할 값,
딕셔너리의 값을 수정하고 싶을땐 dict[이름표] = 수정할 값,

2
리스트의 값을 추가하고 싶을땐 list.append 함수 사용
딕셔너리의 값을 추가하고 싶을떈 append 함수 없으므로, 그냥 dict[추가할 이름표] = 추가할 값

3
리스트의 값을 삭제하고 싶을땐 del(list[인덱스번호]) or print(list.pop(인덱스 번호))
딕셔너리의 값을 삭제하고 싶을땐 del(dict['이름표']) or print(dict.pop('이름표')) ..

(* pop할때 [ ] 아니고 ( ) 이다. )
(* 이때 pop함수를 사용하면 삭제한값이 리턴된다!)



<<딕셔너리와 반복문>>


> 딕셔너리의 단점: 저장한 순서를 지키지 않음! 출력순서를 지키지 않는다.
> 딕셔너리의 장점: key를 가지고 value를 찾아낼수있음!

ages = {'tod':35,'paul':62,'sam':23} 

for key in ages.keys(): 
    print(key) 
    #tod
    #paul
    #sam
     
for value in ages.values(): 
    print(value) 
    #35
    #62
    #23
    
for key in ages.keys(): 
    print('{}의 나이는 {}세입니다.'.format(key,ages[key])) 
    #tod의 나이는 35세입니다.
    #paul의 나이는 62세입니다.
    #sam의 나이는 23세입니다.
    
    
for key in ages: #.keys()는 생략 가능! 
    print('{}의 나이는 {}세입니다.'.format(key,ages[key])) 
    #tod의 나이는 35세입니다.
    #paul의 나이는 62세입니다.
    #sam의 나이는 23세입니다.


<<items()>>

=>Dictonary의 key-value 쌍을 Tuple로 구성하여 반환한다. 한 세트로!

 

 

ex)

ages = {'tod':35,'paul':62,'sam':23} 
for key,value in ages.items(): 
    print('{}의 나이는 {}세입니다.'.format(key,value)) 


-----------------------------------------------------------------------------------------------------------------------------

<<리스트와 딕셔너리의 비교>>


-공통점

                         List                        Dictionary 
생성 list = [ 1, 2 ,3 ]  dict = { 'one':1, 'two':2 } 
호출  list[ 0 ]    dict[ 'one' ] 
삭제 del( list[ 0 ] ) del( dict[ 'one' ] ) 
개수 확인 len( list )  len( dict ) 
값 확인 2 in list  'two' in dict.keys( ) 
전부 삭제 list.clear( ) dict.clear( ) 
전부 꺼내는 명령어 enumerate() items() 



- 차이점

  List       Dictionary 
순서 삭제 시 순서가 바뀌기 때문에 인덱스에 대한 값이 바뀐다    key로 값을 가져오기 때문에 삭제 여부와 상관없다 
결합(갱신)  list1 + list2 dict1.update( dict2 ) 



<<데이터의 갱신 : update>>


>>dict1.update( dict2 ) =>dict1의 값에다가 dict2의 값으로 덮는다.. (만약 key가 동일하면 그 키의 값은 dict2의 값으로 업데이트됨)
>>dict2.update( dict1 ) => 그 반대이다.

 

ex)

mydict = {'김기수': 30, '홍대길': 35, '강찬수': 25}

mydict.update({'홍대길':33,'강찬수':26})

print(mydict) #{'김기수': 30, '홍대길': 33, '강찬수': 26}

'Python' 카테고리의 다른 글

python 간단 정리 - (11)  (0) 2020.02.25
python 간단 정리 - (10) - <간단한 Tip!>  (0) 2020.02.24
python 간단 정리 - (8)  (0) 2020.02.24
python 간단 정리 - (7)  (0) 2020.02.23
python 간단 정리 - (6)  (0) 2020.02.16