사전LOGIN

사전

이전 연구를 통해 우리는 리스트와 튜플을 사용하여 주문된 세트를 나타낼 수 있다는 것을 알 수 있습니다. 이전 예에서는 리스트를 사용하여 사용자의 닉네임을 저장했습니다

user=['liangdianshui','twowater','两点水']

사용자의 계정도 기록해야 한다면 어떻게 될까요?

목록을 사용하면 다음과 같이 해결할 수 있습니다.

user=[['liangdianshui','111111'],['twowater','222222'],['两点水','333333']]

하지만 이렇게 표현하는 것은 불편하고, 닉네임을 기준으로 해당 닉네임을 찾기가 어렵고, 목록이 길수록 시간이 오래 걸립니다. 이번에는 dict(딕셔너리)를 사용하여 표현할 수 있습니다. 네, Python에는 사전(dict)이 내장되어 있습니다. dict의 전체 이름은 JAVA의 map과 동일합니다. 값) 저장이 가능하며 검색 속도가 매우 빠릅니다.

user={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'}

1. dict(사전) 생성

Dictionary는 변경 가능한 또 다른 컨테이너 모델이며 모든 유형의 객체를 저장할 수 있습니다.

사전의 각 키-값(키=>값) 쌍은 콜론(:)으로 구분되며, 각 쌍은 쉼표(,)로 구분됩니다. 전체 사전은 중괄호({})로 묶입니다. 형식은 다음과 같습니다. 표현:

dict = {key1 : value1, key2 : value2 }

참고: 키는 고유해야 하지만 값은 그렇지 않습니다. 값은 모든 데이터 유형이 될 수 있지만 키는 변경할 수 없어야 합니다.

dict(사전) 인스턴스 만들기:

dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'}
dict2={'abc':1234,1234:'abc'}

2. dict(사전)에 액세스

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'}
print(dict1)

출력 결과:

{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'}

여기에서 주목해야 할 점은: 이 키가 사전에 존재하지 않으면 오류가 발생한다는 것입니다. 보고됩니다.

3. dict(사전) 수정

사전에 새 콘텐츠를 추가하는 방법은 새 키/값 쌍을 추가하거나 기존 키/값 쌍을 수정 또는 삭제하는 것입니다.

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'}
print(dict1)
# 新增一个键值对
dict1['jack']='444444'
print(dict1)
# 修改键值对
dict1['liangdianshui']='555555'
print(dict1)

출력 결과:

{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'}
{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333', 'jack': '444444'}
{'liangdianshui': '555555', 'twowater': '222222', '两点水': '333333', 'jack': '444444'}

4, dict(사전) 삭제

del을 통해 dict(사전)의 요소를 삭제할 수 있고, dict(사전)도 삭제할 수 있습니다

clear() 메소드를 호출하여 사전의 모든 요소를 ​​삭제할 수 있습니다

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333'}
print(dict1)
# 通过 key 值,删除对应的元素
del dict1['twowater']
print(dict1)
# 删除字典中的所有元素
dict1.clear()
print(dict1)
# 删除字典
del dict1

출력 결과:

{'liangdianshui': '111111', 'twowater': '222222', '两点水': '333333'}
{'liangdianshui': '111111', '两点水': '333333'}
{}

5. dict(사전) 사용 시 주의 사항

(1) dict(사전)는 키가 두 번 생성되는 것을 허용하지 않지만 dict( 사전) 키 값이 두 번 할당되면 마지막에 할당된 값이 우선 적용됩니다.

예:

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,'twowater':'222222' ,'两点水':'333333','twowater':'444444'}
print(dict1)
print(dict1['twowater'])

출력 결과:

{'liangdianshui': '111111', 'twowater': '444444', '两点水': '333333'}
444444

(2) dict(사전) 키는 변경할 수 없어야 하지만 키는 변경할 수 없습니다. 숫자, 문자열 또는 튜플은 목록으로 작동하지만 목록을 사용할 수는 없습니다

예:

#-*-coding:utf-8-*-
dict1={'liangdianshui':'111111' ,123:'222222' ,(123,'tom'):'333333','twowater':'444444'}
print(dict1)

출력 결과:

{'liangdianshui': '111111', 123: '222222', (123, 'tom'): '333333', 'twowater': '444444'}

(3) dict의 내부 저장소 순서와 순서 사이에는 관계가 없습니다. 딕트는 키 배치

목록과 비교하여 다음과 같은 특징이 있습니다.

검색 및 삽입 속도가 매우 빠르며 키 수가 증가해도 느려지지 않습니다.

많은 메모리가 필요합니다.

목록은 그 반대입니다.

검색 요소가 늘어날수록 삽입 시간도 늘어납니다

공간을 거의 차지하지 않고 메모리도 거의 낭비하지 않습니다

6. (사전)

메서드 및 함수설명
cmp(dict1, dict2)두 개의 사전 요소 비교
len(dict)사전 요소 수 계산
str (딕셔너리) 사전의 인쇄 가능한 문자열 표현을 출력
type(variable)입력 변수 유형을 반환하고, 변수가 사전인 경우 사전 유형을 반환합니다.
dict.clear()모두 삭제 사전의 요소
dict.copy()사전의 얕은 복사본을 반환합니다.
dict.values()사전의 모든 값을 목록으로 반환합니다
popitem( ) 사전을 무작위로 반환하고 삭제합니다.
dict.items()(키, 값) 튜플의 탐색 가능한 배열을 목록


에 있는 키와 값의 쌍으로 반환합니다.



다음 섹션
코스웨어