ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python]파이썬 딕셔너리/딕셔너리 함수/dict()/딕셔너리 메소드
    Languages/python 2021. 4. 7. 16:18
    반응형

     

     

     

     

     

     

    딕셔너리

     

    딕셔너리는 말 그대로 사전

     

    딕셔너리는 키와 답의 쌓인 항목을 나열한 시퀀스

    콤마로 구분된 항목(또는 요소,원소)들의 리스트로 표현

    항목의 키 : 값, 전체는 중괄호(curl brace){...}사용

     

    딕셔너리는 중괄호 사이에 키와 값의 항목을 기술한다.

    딕셔너리는 항목 순서는 의미가 없으며,키는 중복 될수 없다.

    키는 수정될 수 없지만, 값은 수정될 수 있다.

    값은 키로 참조된다.

     

    ex)

    dot = {<key> : <value> ,<key> : <value>, ... , <key> : <value> }

     

    >>> bts={'그룹명':'방탄소년단','인원수':7,'리더':'김남준'}
    >>> print(bts)
    {'그룹명': '방탄소년단', '인원수': 7, '리더': '김남준'}

     

    빈 딕셔너리

     

    빈 중괄호 {}

    dict()

     

    ex)

    lect = dict()

     

    값을 변경하거나 배정 가능

     

    함수 dict()

     

    일련의 키-값 쌍으로 [키,값]리스트 형식과 키(,값) 튜플 형식을 모두 사용

     

    키가 단순 문자열이면 간단히 '월=monday' 처럼 키=값 항목 나열로도 지정 가능하다

     

    >>> day = dict(월='monday',화='tuesday',수='wednesfay')
    >>> print(day)
    {'월': 'monday', '화': 'tuesday', '수': 'wednesfay'}

     

    딕셔너리의 키로 정수,실수 등 사용 가능

    (리스트는 사용불가능)

     

    딕셔너리의 키는 수정 불가능한 객체는 모두 가능

    정수는 물론 실수도 가능

     

    새로운 키로 대입

    새로운 키-값의 항목이 삽입

     

    month[0]

    0은 첨자가 아니라 키를 의미

    month에는 키 0 이 없으므로 keyerror가 발생

     

     

     

    예제)

    1월부터 9월의 영어 단어로 구성되는 딕셔너리

     

    month = {1:'january',2:'February',3:'March',4:'April'}
    month[5] ='May'
    month[6] ='June'
    month[7] ='July'
    month[8] ='Auguest'
    month[9] ='September'
    print(month)
    print()
    from random import randint
    for i in range(5):
        r = randint(1,9)
        print('%d : %s' % (r, month[r]))
        ========== RESTART: C:/Users/study/파이썬 연습과제/atrdshfd.py =========
    {1: 'january', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'Auguest', 9: 'September'}
    
    2 : February
    4 : April
    1 : january
    3 : March
    1 : january

     

     

    딕셔너리 메소드 keys()

     

    키로만 구성된 리스트를 반환

     

    for문에서 시퀀스 위치에 메소드 keys()를 사용하면

    딕셔너리의 모든 항목을 참조하는 구문을 사용

     

    day = dict(월='monday', 화 ='tuesday', 수='wendesday', 목='thursday')
    print(day)
    print(day.keys())
    ========= RESTART: C:/Users/study/파이썬 연습과제/study.py =========
    {'월': 'monday', '화': 'tuesday', '수': 'wendesday', '목': 'thursday'}
    dict_keys(['월', '화', '수', '목'])
    >>> 

     

     

    딕셔너리 메소드 items()

     

    (키,값)쌍의 튜플이 들어 있는 리스트를 반환

     

    튜플의 첫 번째 항목은 키,두 번째 학목은 키 값

     

    day = dict(월='monday', 화 ='tuesday', 수='wendesday', 목='thursday')
    print(day)
    print(day.items())
    ========= RESTART: C:/Users/study/파이썬 연습과제/study.py =========
    {'월': 'monday', '화': 'tuesday', '수': 'wendesday', '목': 'thursday'}
    dict_items([('월', 'monday'), ('화', 'tuesday'), ('수', 'wendesday'), ('목', 'thursday')])
    >>> 

     

    딕셔너리 메소드 values()와 for문

     

    딕셔너리 메소드 values()는 값으로 구성된 리스트를 반환

     

    day = dict(월='monday', 화 ='tuesday', 수='wendesday', 목='thursday')
    print(day)
    print(day.values())
    ========= RESTART: C:/Users/study/파이썬 연습과제/study.py =========
    {'월': 'monday', '화': 'tuesday', '수': 'wendesday', '목': 'thursday'}
    dict_values(['monday', 'tuesday', 'wendesday', 'thursday'])
    >>>

     

    반복 for문에서

    시퀀스 위치에 있는 딕셔너리 변수만으로도 모든 키를 순회 딕셔너리

     

    day = dict(월='monday', 화 ='tuesday', 수='wendesday', 목='thursday')
    for key in day:
        print('%s: %s' % (key, day[key]))
    ========= RESTART: C:/Users/study/파이썬 연습과제/study.py =========
    월: monday
    화: tuesday
    수: wendesday
    목: thursday
    >>> 

     

     

     

    예제)

    네 계절의 단어의 한영 사전을 만들어 항목 순회

     

    season = {'봄' : 'spring','여름':'summer','가을':'fall','겨울':'winter'}
    print(season.keys())
    print(season.items())
    print(season.values())
    print()
    for key in season.keys():
        print('%s %s' % (key,season[key]))
        
    for item in season.items():
        print('{} {} '.format(item[0],item[1]),end=' ')
    print()
    for item in season.items():
        print('{} {}'.format(*item),end=' ')
    print()
    ====================== RESTART: C:/Users/study/파이썬 연습과제/atrdshfd.py =====================
    dict_keys(['봄', '여름', '가을', '겨울'])
    dict_items([('봄', 'spring'), ('여름', 'summer'), ('가을', 'fall'), ('겨울', 'winter')])
    dict_values(['spring', 'summer', 'fall', 'winter'])
    
    봄 spring
    여름 summer
    가을 fall
    겨울 winter
    봄 spring  여름 summer  가을 fall  겨울 winter  
    봄 spring 여름 summer 가을 fall 겨울 winter 

     

     

     

    메소드 get()

     

    키로 조회하는 딕셔너리 메소드 get(키[,키가 없을때 반환값])

    메소드 get(키)는 딕셔너리에 키가 없어도 오류가 발생하지 않고 아무것도 없다는 의미인 none을 반환

     

     

    메소드 clear()와 문장 del

     

    모든 항목을 제거하는 딕셔너리 메소드 clear()

    내용들만 지우는것이기 때문에 빈딕셔너리만 나온다

     

    문자 del로 딕셔너리 변수 자체 제거

    에러가 뜬다

     

     

    season = {'봄' : 'spring','여름':'summer','가을':'fall','겨울':'winter'}
    print(season.get('봄'))
    season.clear()
    print(season)
    ====================== RESTART: C:/Users/Desktop/파이썬 연습과제/atrdshfd.py =====================
    spring
    {}

     

     

    딕셔너리를 결합하는 메소드 update()

     

    메소드 update(다른 딕셔너리)

    인자인 다른 딕셔너리를 합병

    인자 딕셔너리에 원 딕셔너리와 동일한 키가 있다면 인자 딕셔너리의 값으로 대체

     

    A = {}

    B = {}

    A.update(B)

     

    A와 B는 합병이 된다

     

     

    city = {'대한민국':'서울','뉴질랜드':'웰링톤'}
    city2 = {'일본':'도쿄','중국':'베이징'}
    city.update(city2)
    print(city)
    ========= RESTART: C:/Users/study/파이썬 연습과제/study.py =========
    {'대한민국': '서울', '뉴질랜드': '웰링톤', '일본': '도쿄', '중국': '베이징'}
    >>> 
    반응형

    댓글

Designed by Tistory.