-
파이썬_Unit25_딕셔너리 응용python파2썬 2021. 9. 2. 17:57
코딩도장_Unit25_딕셔너리 응용
딕셔너리 기초부터 딕셔너리안에 딕셔너리를 불러오는 예제까지...
#Unit25 딕셔너리에서 키와 기본값 저장하기. x = {'a':10,'b':20,'c':30,'d':40} x.setdefault('e') print(x) x.update(a=90) print(x) x.update(a=900, f=60) print(x) y = {1:'one', 2:'two'} y.update({1:'one',3:'three'}) print(y) y.update([[2,'Two'],[4, 'Four']]) print(y) y.update(zip([1,2],['one1', 'two2'])) print(y) #setdefault 와 update차이 #setfefault는 이미 키의 값이 지정되어 있다면 수정불가. print(x.pop('a')) print(x) del x['b'] print(x) #pop은 마지막 들어온 값이 나갑니다. print(y.popitem()) #딕셔너리에서 키의 값을 가져오기 #등록하지 않은 키값을 가져오는 명령어를 실행하면 기본값 0이 반환됩니다. print(x.get('c')) #딕셔너리 모든 키 값 쌍으로 삭제하기 x.clear() print(x) #딕셔너리에서 키값 쌍으로 가져오기 # items: 키-값 쌍을 모두 가져옴 # keys: 키를 모두 가져옴 # values: 값을 모두 가져옴 x = {'a': 10, 'b': 20, 'c': 30, 'd': 40} print(x.items()) # dict_items([('a', 10),('b',20),('c',30),('d',40)]) 이런식으로 출력됩니다. print(x.keys()) print(x.values())
#딕셔너리 for반복문을 사용해서 간단하게 출력하기 x = {'a':10,'b':20,'c':30,'d':40} for i in x: print(i, end=' ') #출력하면 키값만 출력됩니다. print() #for 키, 값 in 딕셔너리.items(): # 반복할 코드 #이런식으로 진행해야 키-값 둘다 받아옵니다. for key, value in x.items(): print(key, value) print() #밑에 코드도 실행 됩니다. for key, value in {'a':10,'b':20,'c':30,'d':40}.items(): print(key,value) #키만 가져오기 keys() for key in x.keys(): print(key) #딕셔너리 값만 가져오기 for value in x.values(): print(value)
#딕셔너리 표현식 사용하기. #키를 사용해서 딕셔너리 만들기. keys = ['a', 'b', 'c', 'd'] x = {key: value for key, value in dict.fromkeys(keys).items()} print(x) #값을 키로 만드는 방법 print({key: 0 for key in dict.fromkeys(['a','b','c','d']).keys()}) #키와 값의 자리를 바꾸는 방법 print({value: key for key, value in {'a':10,'b':20,'c':30,'d':40}.items()}) #if 조건을 사용하여 딕셔너리 표현식 사용 y = {'a': 10, 'b': 20, 'c': 30, 'd': 40} y = {key: value for key, value in y.items()if value !=20} #딕셔너리안에 key값의 범위들 중에 value가 20인 키-값 삭제 print(y)
#딕셔너리 안에 딕셔너리 저장 & 출력 예제입니다. terrestrial_planet = { 'Mercury': { 'mean_radius': 2439.7, 'mass': 3.3022E+23, 'orbital_period': 87.969 }, 'Venus': { 'mean_radius': 6051.8, 'mass': 4.8676E+24, 'orbital_period': 224.70069, }, 'Earth': { 'mean_radius': 6371.0, 'mass': 5.97219E+24, 'orbital_period': 365.25641, }, 'Mars': { 'mean_radius': 3389.5, 'mass': 6.4185E+23, 'orbital_period': 686.9600, } } print(terrestrial_planet) print(terrestrial_planet['Venus']['mean_radius']) #딕셔너리 할당과 복사 #할당은 하나가 변해도 관계있는 딕셔너리 전부 적용 x = {'a':0,'b':0,'c':0,'d':0} y = x print(x is y) y['a'] = 99 print(x) print(y) #복사는 하나가 변해도 다른 copy본에는 적용 x 적용되지 않습니다. a = {'a':0,'b':0,'c':0,'d':0} b = a.copy() print(a is b) b['a'] = 99 print(a) print(b) #중첩 딕셔너리를 완전히 복사하는 법. deepcopy() x1 = {'a':{'python':'2.7'}, 'b':{'python':'3.6'}} y1 = x1.copy() y1['a']['python'] = '2.7.15' print(x1) print(y1) #위의 코드는 모두 반영됩니다. #deepcopy() -> import copy !!! a1 = {'a':{'python':'2.7'}, 'b':{'python':'3.6'}} import copy #copy 모듈 가져옴 b1 = copy.deepcopy(a1) #copy.deepcopy() 함수 사용 b1['a']['python'] = '2.7.15' print(a1) print(b1)
연습문제 25.7
심사문제 25.8
#연습문제 25.7 maria = {'koream':94, 'english':91, 'mathematics':89, 'science':83} average = sum(maria.values())/len(maria) #딕셔너리에서 값들만 불러온 후에 딕셔너리(키)길이를 나눈다. print(average) #심사문제 25.8 keys = input().split() values = map(int, input().split()) x = dict(zip(keys, values)) del x['delta'] x = {keys: values for keys, values in x.items() if values !=30} print(x) # keys1 = input().split() # values1 = map(int, input().split()) # x1 = dict(zip(keys1, values1)) # x1.pop('delta') # x1 = {keys1:values1 for keys1, values1 in x1.items() if values1 !=30} # print(x1)
'python파2썬' 카테고리의 다른 글
파이썬_Unit27_파이썬으로 파일만들기 (0) 2021.09.06 파이썬_Unit26_파이썬 세트 사용 (0) 2021.09.03 파이썬_문자열 응용하기_Unit24_포메팅 (0) 2021.08.27 파이썬_Unit23_2차원_3차원_list만들기 (1) 2021.08.26 파이썬_list(6)_Unit22_심사문제22.10_map을 사용해서 입력시 list생성(tuple) (0) 2021.08.24