산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 딕셔너리(Dictionary) 기초: 키, 값, 접근 방법

이전 페이지 다음 페이지  

각 키는 콜론(:)으로 값과 구분되고, 항목들은 쉼표로 구분되며, 전체는 중괄호로 감싸집니다. 항목이 없는 빈 딕셔너리는 두 중괄호로 작성합니다: {}.

키는 딕셔너리 내에서 고유해야 하지만 값은 중복될 수 있습니다. 딕셔너리의 값은 어떤 타입이든 될 수 있지만, 키는 문자열, 숫자, 튜플 같은 불변 데이터 타입이어야 합니다.

딕셔너리 값 접근

딕셔너리 요소에 접근하려면 익숙한 대괄호와 키를 사용하여 값을 얻으세요. 간단한 예제는 다음과 같습니다.

Live Demo
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

위 코드를 실행하면 다음 결과가 생성됩니다.

dict['Name']: Zara
dict['Age']: 7

딕셔너리의 일부가 아닌 키로 데이터 항목에 접근하려 하면 다음과 같은 오류가 발생합니다.

Live Demo
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

위 코드를 실행하면 다음 결과가 생성됩니다.

dict['Alice']: 
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

딕셔너리 업데이트

새 항목이나 키-값 쌍을 추가하거나, 기존 항목을 수정하거나, 기존 항목을 삭제하여 딕셔너리를 업데이트할 수 있습니다. 간단한 예제는 다음과 같습니다.

Live Demo
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8;          # 기존 항목 업데이트
dict['School'] = "DPS School";  # 새 항목 추가
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

위 코드를 실행하면 다음 결과가 생성됩니다.

dict['Age']: 8
dict['School']: DPS School

딕셔너리 요소 삭제

개별 딕셔너리 요소를 제거하거나 딕셔너리 전체 내용을 지울 수 있습니다. 단일 연산으로 전체 딕셔너리를 삭제할 수도 있습니다.

전체 딕셔너리를 명시적으로 제거하려면 del 문을 사용하세요. 간단한 예제는 다음과 같습니다.

Live Demo
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name'];  # 'Name' 키를 가진 항목 제거
dict.clear();      # 딕셔너리 모든 항목 제거
del dict;          # 전체 딕셔너리 삭제
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

다음 결과가 생성됩니다. del dict 후 딕셔너리가 더 이상 존재하지 않으므로 예외가 발생합니다.

dict['Age']: 
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

참고 - del() 메서드는 이후 섹션에서 다룹니다.

딕셔너리 키의 속성

딕셔너리 값에는 제한이 없습니다. 표준 객체나 사용자 정의 객체 등 임의의 파이썬 객체가 될 수 있습니다. 그러나 키에는 동일하지 않습니다.

딕셔너리 키에 대해 기억해야 할 두 가지 중요한 점이 있습니다.

(a) 키당 하나 이상의 항목 허용 안 함. 즉, 중복 키 불가. 할당 중 중복 키가 발견되면 마지막 할당이 승. 예를 들어:

Live Demo
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']

위 코드를 실행하면 다음 결과가 생성됩니다.

dict['Name']: Manni

(b) 키는 불변이어야 함. 즉, 문자열, 숫자, 튜플을 딕셔너리 키로 사용할 수 있지만 ['key'] 같은 것은 허용 안 됨. 간단한 예제:

Live Demo
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']

위 코드를 실행하면 다음 결과가 생성됩니다.

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'

내장 딕셔너리 함수 및 메서드

파이썬에는 다음 딕셔너리 함수가 포함되어 있습니다.

번호함수 및 설명
1cmp(dict1, dict2)

두 딕셔너리의 요소 비교.

2len(dict)

딕셔너리 전체 길이 반환. 이는 딕셔너리의 항목 수와 동일.

3str(dict)

딕셔너리의 출력 가능한 문자열 표현 생성.

4type(variable)

전달된 변수의 타입 반환. 전달된 변수가 딕셔너리면 딕셔너리 타입 반환.

파이썬에는 다음 딕셔너리 메서드가 포함되어 있습니다.

번호메서드 및 설명
1dict.clear()

딕셔너리 dict의 모든 요소 제거.

2dict.copy()

딕셔너리 dict의 얕은 복사본 반환.

3dict.fromkeys()

seq에서 키로, value로 값을 설정하여 새 딕셔너리 생성.

4dict.get(key, default=None)

key 키에 대해 값 반환, 키가 없으면 default 반환.

5dict.has_key(key)

키가 딕셔너리 dict에 있으면 true, 없으면 false 반환.

6dict.items()

dict의 (키, 값) 튜플 쌍 리스트 반환.

7dict.keys()

딕셔너리 dict의 키 리스트 반환.

8dict.setdefault(key, default=None)

get()과 유사하지만 key가 dict에 없으면 dict[key]=default 설정.

9dict.update(dict2)

딕셔너리 dict2의 키-값 쌍을 dict에 추가.

10dict.values()

딕셔너리 dict의 값 리스트 반환.

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. Python 이터레이터: 작동 원리와 직접 만들기
  7. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  8. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드
  9. 파이썬(Python) 개요: 고수준, 가독성, 인터랙티브, 객체지향
  10. 파이썬 숫자(Numbers): 불변 숫자 데이터 타입 이해하기