본문 바로가기
초보자를 위한 Python/2. Python 데이터 구조

2.2 Python 딕셔너리 (Dict) : 업데이트, Cmp, Len, 정렬, 복사, 항목, str 예제

by 엔터티 2021. 6. 16.
반응형

파이썬 딕셔너리란 무엇입니까?

Python 의 딕셔너리는 키-값 쌍을 보유하는 데이터 값의 정렬되지 않고 변경 가능한 모음입니다. 딕셔너리의 각 키-값 쌍은 키를 관련 값에 매핑하여 더욱 최적화됩니다. Python의 딕셔너리는 중괄호 ({})를 사용하여 쉼표로 구분 된 키-값 쌍 목록을 묶어 선언합니다. Python 딕셔너리는 키와 값의 두 가지 요소로 분류됩니다.

  1. 키는 단일 요소가됩니다.
  2. 값은 목록 또는 목록 내의 목록, 숫자 등이 될 수 있습니다.

목차

    Python 딕셔너리 구문

    Dict = { 'Tim': 18,  xyz,.. }

    사전은 중괄호 안에 나열되며, 이러한 중괄호 안에 키와 값이 선언됩니다. 각 키는 콜론 (:)으로 값과 구분되며 쉼표는 각 요소를 구분합니다.

     

    사전 키의 속성

    사전 키를 사용하는 동안 두 가지 중요한 사항이 있습니다.

    • 키당 하나 이상의 항목은 허용되지 않습니다 (중복 키는 허용되지 않음).
    • 사전의 값은 모든 유형이 될 수 있지만 키는 숫자, 튜플 또는 문자열과 같이 변경 불가능해야합니다.
    • 사전 키는 대소 문자를 구분합니다. 키 이름은 같지만 대소 문자가 다른 경우 Python 사전에서 다른 키로 취급됩니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
    print (Dict['Tiffany'])

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}   
    print((Dict['Tiffany']))
    • 코드에는 사전 이름 "Dict"가 있습니다.
    • 사전에 사람의 이름과 나이를 선언했습니다. 여기서 name은 "Keys"이고 age는 "value"입니다.
    • 이제 코드를 실행하십시오.
    • 사전에서 티파니의 나이를 검색합니다.

    파이썬 사전 방법

    사전 복사

    전체 사전을 새 사전에 복사 할 수도 있습니다. 예를 들어, 여기에서는 원래 사전을 "Boys"및 "Girls"라는 새 사전 이름으로 복사했습니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}	
    studentX=Boys.copy()
    studentY=Girls.copy()
    print studentX
    print studentY

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}	
    studentX=Boys.copy()
    studentY=Girls.copy()
    print(studentX)
    print(studentY)
    • 남학생과 여학생의 이름과 나이가 함께 적힌 원본 사전 (딕트)이 있습니다.
    • 그러나 우리는 남아 목록을 여아 목록과 분리하기를 원하므로 별도의 사전 이름 인 "Boys"와 "Girls"로 남아와 여아의 요소를 정의했습니다.
    • 이제 다시 새로운 사전 이름 "student X"및 "student Y"를 만들었습니다. 여기서 소년 사전의 모든 키와 값은 학생 X에 복사되고 소녀는 studentY에 복사됩니다.
    • 그래서 이제 누가 남자인지 여자인지 확인하기 위해 메인 사전 (Dict)에서 전체 목록을 볼 필요가 없습니다. 남학생 목록을 원하면 student X를, 여자 목록을 원하면 StudentY를 인쇄하면됩니다.
    • 따라서 student X 및 studentY 사전을 실행하면 "boys"및 "girls"사전에있는 모든 요소가 별도로 제공됩니다.

    사전 업데이트

    새 항목 또는 키-값 쌍을 기존 항목에 추가하거나 기존 항목을 삭제하여 사전을 업데이트 할 수도 있습니다. 이 예에서는 기존 사전에 "Sarah"라는 다른 이름을 추가합니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    Dict.update({"Sarah":9})
    print Dict

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    Dict.update({"Sarah":9})
    print(Dict)
    • 기존 사전 "Dict"에는 "Sarah"라는 이름이 없습니다.
    • Dict.update 메소드를 사용하여 Sarah를 기존 사전에 추가합니다.
    • 이제 코드를 실행하면 기존 사전에 Sarah가 추가됩니다.

    사전에서 키 삭제

    Python 사전은 사전 목록에서 요소를 자유롭게 삭제할 수 있습니다. 목록에 Charlie라는 이름이 필요하지 않으므로 다음 코드로 키 요소를 제거 할 수 있습니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    del Dict ['Charlie']
    print Dict

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    del Dict ['Charlie']
    print(Dict)

    이 코드를 실행하면 Charlie없이 사전 목록이 인쇄됩니다.

    • 우리는 del Dict 코드를 사용했습니다.
    • 코드가 실행되면 기본 사전에서 Charlie를 삭제했습니다.

    Dictionary items () 메서드

    items () 메서드는 사전에있는 튜플 쌍 (키, 값) 목록을 반환합니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print "Students Name: %s" % Dict.items()

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print("Students Name: %s" % list(Dict.items()))

     

    • 우리는 Dict에 코드 items () 메서드를 사용합니다.
    • 코드가 실행되면 사전에서 항목 (키 및 값) 목록을 반환합니다.

    주어진 키가 이미 사전에 있는지 확인

    주어진 목록에 대해 하위 사전이 기본 사전에 있는지 여부를 확인할 수도 있습니다. 여기에 두 개의 하위 사전 "Boys"와 "Girls"가 있습니다. 이제 우리 사전에 Boys가 기본 "Dict"에 있는지 여부를 확인하려고합니다. 이를 위해 우리는 else if 메소드와 함께 for 루프 메소드를 사용합니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}
    for key in Dict.keys():
        if key in Boys.keys():
            print True
        else:       
            print False

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}
    for key in list(Dict.keys()):
        if key in list(Boys.keys()):
            print(True)
        else:       
            print(False)
    • 코드의 forloop는 기본 사전의 각 키에서 Boys 키를 확인합니다.
    • 기본 사전에있는 경우 true를 인쇄해야하며 그렇지 않으면 false로 인쇄해야합니다.
    • 코드를 실행하면 "Boys"사전에 세 개의 요소가 있으므로 "True"를 세 번 인쇄합니다.
    • 그래서 그것은 "Boys"가 우리의 기본 사전 (Dict)에 존재한다는 것을 나타냅니다.

    사전 정렬

    사전에서 요소를 정렬 할 수도 있습니다. 예를 들어 사전의 요소 이름을 알파벳순으로 인쇄하려면 for 루프를 사용해야합니다. 그에 따라 사전의 각 요소를 정렬합니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}
    Students = Dict.keys()
    Students.sort()
    for S in Students:
          print":".join((S,str(Dict[S])))

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}
    Students = list(Dict.keys())
    Students.sort()
    for S in Students:
          print(":".join((S,str(Dict[S]))))
    • 우리는 사전 "Dict"에 대한 변수 students를 선언했습니다.
    • 그런 다음 Students.sort 코드를 사용하여 사전 내부의 요소를 정렬합니다.
    • 그러나 사전의 각 요소를 정렬하기 위해 변수 S를 선언하여 for 루프를 실행합니다.
    • 이제 코드를 실행할 때 for 루프는 사전에서 각 요소를 호출하고 문자열과 값을 순서대로 인쇄합니다.

    Python 사전 내장 함수

    사전 len () 메서드

    len () 함수는 사전에있는 쌍의 수를 제공합니다.

    예를 들면

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print "Length : %d" % len (Dict)

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print("Length : %d" % len (Dict))

    len (Dict) 함수를 실행하면 사전에 4 개의 요소가 있으므로 "4"로 출력됩니다.

    변수 유형

    파이썬은 예약 메모리 공간을 명시 적으로 선언 할 필요가 없습니다. 자동으로 발생합니다. 변수 "="등호에 값 할당이 사용됩니다. 변수 유형을 결정하는 코드는 "% type (Dict)"입니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print "variable Type: %s" %type (Dict)

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print("variable Type: %s" %type (Dict))
    • % type 코드를 사용하여 변수 유형을 알 수 있습니다.
    • 코드가 실행되면 변수 유형이 사전임을 알려줍니다.

    Python List cmp () 메서드

    비교 메소드 cmp()는 파이썬에서 두 사전의 값과 키를 비교하는 데 사용됩니다. 두 사전이 같으면 메서드가 0을 반환하고 dic1> dict2이면 1을 반환하고 dict1 <dict2이면 -1을 반환합니다.

    Python 2 예제

    Boys = {'Tim': 18,'Charlie':12,'Robert':25}
    Girls = {'Tiffany':22}	
    print cmp(Girls, Boys)

    Python 3 예제

    cmp is not supported in Python 3
    • "Boys"와 "Girls"라는 두 개의 사전 이름이 있습니다.
    • 코드 "cmp (Girls, Boys)"에서 먼저 선언 한 것이 무엇이든 사전 1로 간주됩니다. 우리의 경우 "Girls"를 먼저 선언 했으므로 사전 1로 간주되고 소년은 사전 2로 간주됩니다.
    • 코드가 실행되면 -1을 출력하고, 우리의 사전 1이 사전 2보다 작음을 나타냅니다.

    사전 Str (dict)

    Str() 메서드를 사용하면 사전을 인쇄 가능한 문자열 형식으로 만들 수 있습니다.

    Python 2 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print "printable string:%s" % str (Dict)

    Python 3 예제

    Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}	
    print("printable string:%s" % str (Dict))
    • % str (Dict) 코드 사용
    • 사전 요소를 인쇄 가능한 문자열 형식으로 반환합니다.

    다음은 모든 사전 방법 목록입니다.

    Method Description Syntax
    copy() 전체 사전을 새 사전에 복사 dict.copy()
    update() 새 항목 또는 키-값 쌍을 기존 항목에 추가하거나 기존 항목을 삭제하여 사전을 업데이트하십시오. Dict.update([other])
    items() 사전에있는 튜플 쌍 (키, 값) 목록을 반환합니다. dictionary.items()
    sort() 요소를 정렬 할 수 있습니다. dictionary.sort()
    len() 사전의 쌍 수를 제공합니다. len(dict)
    cmp() 두 사전의 값과 키 비교 cmp(dict1, dict2)
    Str() 사전을 인쇄 가능한 문자열 형식으로 만들기 Str(dict)

    사전 병합

    여기에서는 주어진 두 사전을 하나의 사전으로 병합하는 방법을 이해합니다.

    아래와 같이 두 개의 사전이 있습니다.

    Dictionary1 : my_dict1

    my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}

    Dictionary2 : my_dict2

    my_dict2 = {"firstName" : "Nick", "lastName": "Price"}

    이 두 사전 my_dict1 및 my_dict2를 병합하고 namemy_dict를 사용하여 단일 사전을 만듭니다.

    update () 메서드를 사용하여 두 사전 병합

    update () 메서드는 한 사전을 다른 사전과 병합하는 데 도움이됩니다. 이 예에서는 my_dict1을 my_dict2로 업데이트합니다. update () 메서드를 사용한 후 my_dict1은 아래와 같이 my_dict2의 내용을 갖게됩니다.

    my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
    
    my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
    
    my_dict1.update(my_dict2)
    
    print(my_dict1)

    Output:

    {'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

    ** 메서드를 사용하여 사전 병합 (Python 3.5 이상)

    **는 Python에서 Kwargs라고하며 Python 버전 3.5 이상에서 작동합니다. **를 사용하면 두 개의 사전을 병합 할 수 있으며 병합 된 사전을 반환합니다. 변수 앞에 **를 사용하면 변수가 모든 내용으로 바뀝니다.

    다음은 **를 사용하여 두 디렉터리를 병합하는 작업 예제입니다.

    my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
    
    my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
    
    my_dict =  {**my_dict1, **my_dict2} 
    
    print(my_dict)

    Output:

    {'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}

    사전 멤버십 테스트

    현재의 키가 사전 내부에 있는지 여부를 테스트 할 수 있습니다. 이 테스트는 값이 아닌 사전의 키에 대해서만 수행 할 수 있습니다. 멤버십 테스트는 in 키워드를 사용하여 수행됩니다 . in 키워드를 사용하여 사전에서 키를 확인할 때 표현식은 키가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

    다음은 사전에 회원 선 테스트를 보여주는 예입니다.

    my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
    print("email" in my_dict)
    print("location" in my_dict)
    print("test" in my_dict)

    Output:

    True
    True
    False

    요약:

    • 프로그래밍 언어의 사전은 어떤 방식 으로든 연결된 정보를 저장하는 데 사용되는 데이터 구조 유형입니다.
    • 파이썬 사전은 키와 값의 두 가지 요소로 정의됩니다.
    • 사전은 특정 순서로 정보를 저장하지 않으므로 입력 한 순서대로 정보를 다시 얻지 못할 수 있습니다.
    • 키는 단일 요소가됩니다.
    • 값은 목록 또는 목록 내의 목록, 숫자 등이 될 수 있습니다.
    • 키당 하나 이상의 항목은 허용되지 않습니다 (중복 키는 허용되지 않음).
    • 사전의 값은 모든 유형이 될 수 있지만 키는 숫자, 튜플 또는 문자열과 같이 변경 불가능해야합니다.
    • 사전 키는 대소 문자를 구분합니다. 키 이름은 같지만 대소 문자가 다른 경우 Python 사전에서 다른 키로 취급됩니다.

    썸네일

    반응형

    댓글