>  기사  >  백엔드 개발  >  [파이썬 튜토리얼] 파이썬 사전(사전)

[파이썬 튜토리얼] 파이썬 사전(사전)

黄舟
黄舟원래의
2016-12-26 17:50:141373검색

Python Dictionary

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

사전은 키와 해당 값의 쌍으로 구성됩니다. 사전은 연관 배열 또는 해시 테이블이라고도 합니다. 기본 구문은 다음과 같습니다.

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

다음과 같이 사전을 생성할 수도 있습니다.

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

각 키와 값은 콜론(:)으로 구분되며, 각 쌍은 쉼표로 구분된 각 쌍은 쉼표로 구분되어 있으며 전체를 중괄호({})로 묶습니다.

키는 고유해야 하지만 값은 그렇지 않습니다.

값은 모든 데이터 유형이 될 수 있지만 문자열, 숫자 또는 튜플과 같이 변경할 수 없어야 합니다.

사전의 값에 액세스

다음 예와 같이 해당 키를 익숙한 대괄호 안에 넣습니다.

#!/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

사전에 없는 키를 사용하여 데이터에 액세스하면 다음과 같이 오류가 출력됩니다.

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

위 예의 출력 결과:

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

사전 수정

사전에 새 내용을 추가하는 방법은 다음과 같이 새 키/값 쌍을 추가하거나 기존 키/값 쌍을 수정 또는 삭제하는 것입니다.

#!/usr/bin/python
 
dict = {&#39;Name&#39;: &#39;Zara&#39;, &#39;Age&#39;: 7, &#39;Class&#39;: &#39;First&#39;};
 
dict[&#39;Age&#39;] = 8; # update existing entry
dict[&#39;School&#39;] = "DPS School"; # Add new entry
 
 
print "dict[&#39;Age&#39;]: ", dict[&#39;Age&#39;];
print "dict[&#39;School&#39;]: ", dict[&#39;School&#39;];

위 예시의 출력 결과:

dict[&#39;Age&#39;]:  8
dict[&#39;School&#39;]:  DPS School

사전 요소 삭제

단일 요소를 삭제하거나 사전을 지울 수 있습니다. 한 번의 작업만 필요합니다.

다음 예와 같이 사전을 삭제하는 del 명령을 표시합니다.

#!/usr/bin/python
 
dict = {&#39;Name&#39;: &#39;Zara&#39;, &#39;Age&#39;: 7, &#39;Class&#39;: &#39;First&#39;};
 
del dict[&#39;Name&#39;]; # 删除键是&#39;Name&#39;的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典
 
print "dict[&#39;Age&#39;]: ", dict[&#39;Age&#39;];
print "dict[&#39;School&#39;]: ", dict[&#39;School&#39;];

그러나 del을 사용한 후에 사전이 더 이상 존재하지 않기 때문에 예외가 발생합니다.

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

참고: del() 메서드에 대해서도 나중에 설명합니다.

사전 요소 삭제

사전 키의 특성

사전 값은 표준 개체 또는 사용자 정의 등 모든 Python 개체를 제한 없이 사용할 수 있지만 키는 사용할 수 없습니다.

기억해야 할 두 가지 중요한 사항:


1) 동일한 키가 두 번 나타날 수 없습니다. 생성 시 동일한 키를 두 번 할당하면 후자의 값이 기억됩니다. 다음 예시

#!/usr/bin/python
 
dict = {&#39;Name&#39;: &#39;Zara&#39;, &#39;Age&#39;: 7, &#39;Name&#39;: &#39;Manni&#39;};
 
print "dict[&#39;Name&#39;]: ", dict[&#39;Name&#39;];

위 예시의 출력 결과:

dict[&#39;Name&#39;]:  Manni

2) 키 은 immutable이어야 하므로 숫자, 문자열 또는 튜플로 사용할 수 있으므로 다음 예와 같이 목록으로 사용할 수 없습니다.

#!/usr/bin/python
 
dict = {[&#39;Name&#39;]: &#39;Zara&#39;, &#39;Age&#39;: 7};
 
print "dict[&#39;Name&#39;]: ", dict[&#39;Name&#39;];

위 예의 출력 결과:

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

사전 내장 함수 및 메서드

Python 사전에는 다음 내장 함수가 포함되어 있습니다.

일련번호

함수 및 설명

1 cmp(dict1, dict2)
두 개의 사전 요소를 비교합니다.

2 len(dict)
사전 요소의 개수, 즉 전체 키 개수를 계산합니다.

3 str(dict)
사전의 인쇄 가능한 문자열 표현을 출력합니다. ​

4 type(variable)
입력된 변수의 형을 반환하고, 변수가 사전인 경우 사전형을 반환한다.

Python 사전에는 다음 내장 함수가 포함되어 있습니다.

일련 번호

함수 및 설명

1 radiansdict .clear()
사전의 모든 요소 삭제

2 radiansdict.copy()
사전의 얕은 복사본 반환

3 radiansdict.fromkeys()
만들기 새 사전은 시퀀스 seq의 요소를 사전의 키로 사용하고, val은 사전의 모든 키에 해당하는 초기 값입니다.

4 radiansdict.get(key, default=None)
지정된 키의 값을 반환하고, 해당 값이 사전에 없으면 기본값을 반환합니다.

5 radiansdict.has_key(key )
키가 사전 dict에서 true를 반환하고, 그렇지 않으면 false를 반환합니다.

6 radiansdict.items()
순회 가능한(키, 값) 튜플 배열을 목록으로 반환

7 radiansdict.keys()
사전의 모든 키를 목록으로 반환합니다.

8 radiansdict.setdefault(key, default=None)
get()과 유사하지만 키가 사전에 이미 없으면 키가 추가되고 값이 기본값으로 설정됩니다.

9 radiansdict.update(dict2)
사전 dict2의 키/값 쌍을 dict로 업데이트

10 radiansdict.values()
사전에 있는 모든 값을 리스트로 반환

위 내용은 [파이썬 튜토리얼] 파이썬 사전(사전) 내용입니다. PHP 중국어 웹사이트(www.php.cn)를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.