파이썬 딕셔너리 주요 작업 방법

파이썬 딕셔너리는 순서가 없는 가변 컨테이너 모델로, 문자열, 숫자, 튜플과 같은 다양한 유형의 객체를 저장할 수 있습니다. 본 문서에서는 파이썬에서 딕셔너리(Dict)의 상세한 작업 방법을 다루며, 생성, 접근, 삭제, 기타 작업 등을 포함합니다.

딕셔너리는 키(key)와 값(value)의 쌍으로 구성됩니다. 딕셔너리는 연관 배열이나 해시 테이블로도 알려져 있습니다. 기본 구문은 다음과 같습니다:

  1. 딕셔너리 생성
1 >>> userInfo = {'name':'김철수', 'age':30, 'job':'개발자'}
2 팁:
3 딕셔너리에 리스트 포함: studentInfo={'홍길동':[25,'컴퓨터공학'],"이영희":[28,'전자공학']}
4 딕셔너리에 딕셔너리 포함: personalInfo={'홍길동':{'나이':25,'직업':'프로그래머'},"이영희":{'나이':28,'직업':'디자이너'}}
5 주의:
6 각 키와 값은 콜론(:)으로 구분되며, 각 쌍은 쉼표로 구분됩니다. 전체는 중괄호({}) 안에 위치합니다.
7 키는 고유해야 하지만 값은 그렇지 않아도 됩니다.
  1. 딕셔너리 값에 접근하기
 1 >>> employeeData = {'emp1':'매니저', 'emp2':'개발자', 'emp3':'디자이너'}
 2 >>> print(employeeData['emp1'])
 3 매니저
 4 딕셔너리에 없는 키로 데이터에 접근하면 다음과 같은 오류가 발생합니다:
 5 >>> print(employeeData['emp4'])
 6 Traceback (most recent call last):
 7   File "<pyshell#110>", line 1, in <module>
 8     print(employeeData['emp4'])
 9 
10 모든 값에 접근하기
11 >>> productInfo = {'item1':'노트북', 'item2':'마우스', 'item3':'프린터'}
12 >>> for key in productInfo:
13     print(key, productInfo[key])    
14 item3 프린터
15 item2 마우스
16 item1 노트북
  1. 딕셔너리 수정하기
1 >>> carData = {'model':'소나타', 'year':2020, 'color':'흰색'}
2 >>> carData['color']='검정색'
3 >>> print(carData)
4 {'year': 2020, 'model': '소나타', 'color': '검정색'}
  1. 딕셔너리 삭제하기
 1<strong> 단일 요소 삭제
</strong> 2 >>> bookData = {'title':'파이썬 프로그래밍', 'author':'김작가', 'price':30000}
 3 >>> del bookData['price']
 4 >>> print(bookData)
 5 {'author': '김작가', 'title': '파이썬 프로그래밍'}
 6 
 7 <strong>딕셔너리의 모든 요소 삭제</strong> 
 8 >>> menuData={'menu1':'커피','menu2':'차','menu3':'주스'}
 9 >>> menuData.clear()
10 >>> print(menuData)
11 {}
12 
13 
14 <strong>전체 딕셔너리 삭제. 삭제 후 딕셔너리에 접근하면 예외가 발생합니다.</strong>15 >>> studentData = {'name':'학생1', 'id':1001, 'major':'컴퓨터공학'}
16 >>> del studentData
17 >>> print(studentData)
18 Traceback (most recent call last):
19   File "<pyshell#121>", line 1, in <module>
20     print(studentData)
21 NameError: name 'studentData' is not defined
  1. 딕셔너리 업데이트하기
1 update() 메서드를 사용하여 한 딕셔너리의 내용을 다른 딕셔너리에 추가할 수 있습니다:
2 >>> config1 = {'debug':True, 'port':8080}
3 >>> config2={'host':'localhost'}
4 >>> config1.update(config2)
5 >>> print(config1)
6 {'host': 'localhost', 'port': 8080, 'debug': True}
  1. 매핑 관련 함수
 1 >>> dict(name='홍길동', age=30)  
 2 {'age': 30, 'name': '홍길동'}  
 3 >>> userDict = dict(name='이영희', age=25)  
 4 >>> userDict  
 5 {'age': 25, 'name': '이영희'}  
 6 >>> copyDict = dict(**userDict)  
 7 >>> copyDict  
 8 {'age': 25, 'name': '이영희'}  
 9   
10 copyDict = userDict.copy()  
  1. 딕셔너리 키의 특성
 1 딕셔너리 값은 제한 없이 어떤 파이썬 객체도 가질 수 있으며, 표준 객체이든 사용자 정의 객체이든 상관없습니다. 하지만 키는 그렇지 않습니다.
 2 기억해야 할 두 가지 중요한 점:
 3 1) 동일한 키가 두 번 나타나는 것은 허용되지 않습니다. 생성 시 동일한 키에 두 번 값을 할당하면 마지막 값이 저장됩니다    
 4 >>> userInfo={'id':'user1','name':'홍길동','id':'user2'}
 5 >>> print(userInfo)
 6 {'name': '홍길동', 'id': 'user2'}
 7     
 8 2) 키는 불변해야 하므로 숫자, 문자열 또는 튜플을 사용할 수 있지만 리스트는 사용할 수 없습니다
 9 >>> invalidDict = {['id']:'user1', 'name':'홍길동', 'age':30}
10 Traceback (most recent call last):
11   File "<pyshell#125>", line 1, in <module>
12     invalidDict = {['id']:'user1', 'name':'홍길동', 'age':30}
13 TypeError: unhashable type: 'list'
  1. 딕셔너리 내장 함수 및 메서드
<strong>파이썬 딕셔너리는 다음과 같은 내장 함수를 포함합니다:
</strong>1. cmp(dict1, dict2): 두 딕셔너리 요소를 비교합니다. (파이썬 3 이후에서는 사용 불가)
2. len(dict): 딕셔너리 요소 개수, 즉 키의 총수를 계산합니다.
3. str(dict): 딕셔너리의 출력 가능한 문자열을 반환합니다.
4. type(variable): 입력된 변수의 유형을 반환하며, 변수가 딕셔너리이면 딕셔너리 유형을 반환합니다.

<strong>파이썬 딕셔너리는 다음과 같은 내장 메서드를 포함합니다:
</strong>1. mydict.clear(): 딕셔너리 내의 모든 요소를 삭제합니다
2. mydict.copy(): 딕셔너리의 얕은 복사본을 반환합니다
3. mydict.fromkeys(): 시퀀스 seq의 요소를 딕셔너리의 키로 사용하여 새 딕셔너리를 만들고, val을 모든 키의 초기값으로 설정합니다
4. mydict.get(key, default=None): 지정된 키의 값을 반환하며, 값이 딕셔너리에 없으면 default 값을 반환합니다
5. mydict.has_key(key): 키가 딕셔너리 mydict에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다
6. mydict.items(): (키, 값) 튜플 배열을 반환하는 리스트를 반환합니다
7. mydict.keys(): 딕셔너리의 모든 키를 리스트로 반환합니다
8. mydict.setdefault(key, default=None): get()과 유사하지만, 키가 딕셔너리에 없으면 키를 추가하고 값을 default로 설정합니다
9. mydict.update(dict2): 딕셔너리 dict2의 키/값 쌍을 mydict에 업데이트합니다
10. mydict.values(): 딕셔너리의 모든 값을 리스트로 반환합니다

태그: 파이썬 딕셔너리 데이터 구조 프로그래밍 자료형

6월 24일 03:26에 게시됨