ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1072)
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (183)
      • Unreal (69)
      • Unity (103)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (348)
      • C++ (167)
      • C# (90)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • 유니티
  • 오블완
  • 문자열
  • SQL
  • 프로그래머스
  • 그래픽스
  • C++
  • 파이썬
  • 포인터
  • 티스토리챌린지
  • 클래스
  • 배열
  • string
  • 언리얼
  • C
  • 알고리즘
  • 함수
  • Unity
  • c#
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

프로그래밍 언어/Python

[Python] Dictionary - 딕셔너리

2024. 8. 26. 15:51

정의

딕셔너리는 순서가 없는 리스트로 원소들의 인덱싱은 키(key)에 의해서 이루어진다. 원리는 실제 딕셔너리 즉, 사전과 동일하다. 사전에는 단어에 의해서 상응하는 정의들이 연결되어 있다.

 

파이썬의 딕셔너리들은 기본적으로 변수가 자연적인 순서가 없는 경우, 유용한 변수이다. 딕셔너리는 콤마(,)를 사용해서 키와 값의 쌍으로 정의된다. 이러한 키와 값 쌍은 중괄호 {}에 의해서 둘러싸게 되면 딕셔너리로 정의된다.

변수 만들어보기

빈 딕셔너리는 아래와 같이 중괄호 {} 를 사용해서 만들 수 있고, .type() 함수 해당 변수의 타입을 확인하면 dict 라고 나타난다.

dic = {}
type(dic)

또는

dic = dict()

// dict

 

딕셔너리에 키와 값을 정의할 땐 키 : 값 (키와 값 사이에 콜론 : 사용)을 입력하고, 그 다음 쌍은 콤마(,)를 사용해 구분해서 추가한다. 어떠한 형태도 정의할 수 있고, 키들끼리도 같은 변수 형태일 필요가 없다. 아래 예시처럼 상응하는 값들을 문자열, 정수, 리스트로 제각기 다르다.

dic = {1:"first", 2:2, "a":[1,2,3]}
dic

{1: 'first', 2: 2, 'a': [1, 2, 3]}

 

위에 예시를 dict() 함수를 사용해서 정의해보자, 여기서 중요한 점은 아래와 같이 입력 인자들을 중괄호 {}를 사용할 때와 동일하게 하면 안된다는 것이다.

dic = dict(1:"first", 2:2, "a":[1,2,3]) 
dic

File "<ipython-input-12-f2c9351a0c30>", line 1
    dic = dict(1:"first", 2:2, "a":[1,2,3])
                ^
SyntaxError: invalid syntax

 

위와 같은 에러를 줄텐데 dict() 함수를 사용해서 키와 값을 정의할려면, 키 #1 = 값#1, 키 #2 = 값#2 이런식으로 콜론이 아닌 등호를 사용해야한다, 그런데 에러가 발생했다.

dic = dict(1=first, 2=2, a=[1,2,3])
dic

File "<ipython-input-14-7d6d37840680>", line 1
    dic = dict(1=first, 2=2, a=[1,2,3])
              ^
SyntaxError: keyword can't be an expression

 

dict() 함수에서 등호 = 를 사용해서 딕셔너리를 정의하려면 반드시 모든 키가 문자열이어야 한다, 모든 키가 문자열일 때에는 단순하게 아래와 같이 등호를 사용해서 딕셔너리를 정의할 수 있다.

simple = dict(a = 1, b = [1, 2], c = "c")
simple

{'a' : 1, 'b' : [1,2], 'c' : "c"}

 

dict() 함수를 사용해서 키에 대해서 변수 제약조건이 없는 딕셔너리를 만들려면 키와 값을 튜플로 정의하고 전체를 리스트로 구성하는 방법이 있다.

dic = dict([(1, "first"), (2,2), ("a",[1,2,3])])
dic

{1 : 'first', 2 : 2, 'a' : [1,2,3]}

 

마지막으로 다룰 부분은 for 문을 사용해서 키와 값 사이에 특정한 패턴이 있는 경우에 손쉽게 딕셔너리를 정의할 수 있다. 아래와 같이 for 문을 값 오른쪽에 두고 정의하면 된다

dic = {x : 3 * x for x in (1, 2, 3)}
dic

{1: 3, 2: 6, 3: 9}

키/값 확인

dic = {1: 'first', 2: 2, 'a': [1,2,3]}
dic["a"]

[1, 2, 3]

 

결과는 위와 같이 키 a에 해당하는 값인 리스트 [1,2,3]이 출력 된다. 마찬가지로 키 1에 해당하는 값은 아래와 같이 얻을 수 있다

dic[1]

'first'

키/값 쌍 수정 및 추가 하기

없던 키를 넣어주어 새로운 키/값 쌍을 만들 수 있다. 이건 키를 이용해서 값을 확인하는 방법과 비슷한데, 아래와 같이 보낼 딕셔너리에는 없는 키를 확인하도록 하며, 여기에 어떤 값을 넣어주면 알아서 새로운 키/값 쌍이 해당 딕셔너리에 추가된다.

dic = {1: 'first', 2: 2, 'a': [1,2,3]}
dic["b"] = "new"
dic

{1: 'first', 2: 2, 'a': [1,2,3], 'b': 'new'}

 

위에서 보듯이, 본래 딕셔너리에는 없는 "b"라는 문자열을 키로 넣어 확인해보라고 한 뒤, "new" 라는 문자열을 할당하면 키/값 쌍은 본래 있던 딕셔너리 dic에 업데이트 된 것을 볼 수 있다. 그러면 본래 있던 키를 다시 다른 값으로 정의한다면 

dic["b"] = "old"
dic

{1: 'first', 2: 2, 'a': [1,2,3], 'b': 'old'}

위의 결과를 보면 덮어 씌운다는 것을 알 수 있다. 즉, 새롭게 정의 되는게 무조건 우선시 된다, 기존의 것은 무시되며 우선시 되는거는 튜플이 있다.

키/값 쌍 삭제하기

del 함수를 사용하면 된

del dic["b"]
dic

{1: 'first', 2: 2, 'a': [1,2,3]}

 

출처

저작자표시 (새창열림)

'프로그래밍 언어 > Python' 카테고리의 다른 글

[Python] 문자열 함수 모음  (0) 2024.08.26
[Python] 딕셔너리 키, 값 쌍 얻기 - items()  (0) 2024.08.26
[Python] 아스키 코드 (Ascii Code) 사용하기  (0) 2024.08.05
[Python] 포메팅 format  (0) 2024.07.31
[Python] enum형  (0) 2024.07.16
    '프로그래밍 언어/Python' 카테고리의 다른 글
    • [Python] 문자열 함수 모음
    • [Python] 딕셔너리 키, 값 쌍 얻기 - items()
    • [Python] 아스키 코드 (Ascii Code) 사용하기
    • [Python] 포메팅 format
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바