ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬_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)

    댓글

Designed by Tistory.