>  기사  >  백엔드 개발  >  Python dict 사전 자세한 설명

Python dict 사전 자세한 설명

高洛峰
高洛峰원래의
2017-03-08 10:56:032265검색

사전은 해시 테이블의 원리를 통해 구현됩니다. 각 요소는 요소의 키를 통해 고유한 해시 값을 계산하므로 해당 요소의 주소가 결정됩니다. No 요소의 주소를 보장하려면 각 요소의 키와 해당 해시 값이 완전히 다른지 확인해야 하며, 키 유형은 수정할 수 없어야 합니다. 따라서 키 유형은 숫자 값, 문자열 상수 또는 튜플이지만 목록이 될 수는 없습니다. 목록을 수정할 수 있기 때문입니다.

그래서 사전의 특징은 다음과 같습니다.

1. 요소의 쿼리 및 삽입 작업은 기본적으로 일정한 수준으로 매우 빠릅니다.

2. 공간을 시간으로 바꾸는 방법

사전 초기화

다음 방법은 동일합니다

d ={' a':1, 'b':2, 'c':3}

d=dict({'a':1, 'b':2, 'c':3})

d = dict([('a',1), ('b', 2), ('c', 3)])

d = dict(a=1, b=2 , c=3)

d = dict(zip(['a', 'b', 'c'], [1,2,3]))#이 방법을 사용할 수도 있습니다. 두 목록을 결합하려면 사전으로 병합됩니다.

할당된 요소

1. e = d# 참조 할당, e와 d는 항상 동일합니다.

2.e = d.copy()# 값 할당, 둘은 관련이 없습니다.

3. d.copy()는 키-값의 값이 얕은 복사본입니다. 쌍이 사전이나 목록을 만나면 사전이나 목록도 원래 변경 사항에 따라 변경됩니다. 이때 값은 실제로 가리키는 튜플이나 목록이 아닌 튜플이나 목록의 참조나 포인터와 동일합니다. 원래 것. 복사 모듈의 deepcopy() 메서드를 사용하면 이 문제를 피할 수 있습니다.

아아아아

요소 추가

d['d'] = 4# 아래 첨자를 통해 직접 추가합니다. 키 값이 이미 존재하면 요소가 수정됩니다. 물론

요소에 액세스하여

1. d.clear()#d의 모든 요소 삭제

2. d.pop('a')#키 값이 'a'인 요소 삭제

3. del d ['a']#키 값이 'a'인 요소를 삭제합니다.

d에서 k에 대해

요소를 순회합니다. :

 'd[%s]=' % k,d[k]

또는

d.items()의 k,v에 대해 인쇄:

' d[%s]=' % k,v

또는

for k,v in d.iteritems():

 print 'd[ %s]=' % k,v

또는

d.viewitems()의 k,v에 대해:

 print 'd[%s]=' % k ,v

item(), iteritems() 및 viewitems()의 차이점

python2.x의 items()는 다음과 같은 dict의 모든 요소를 ​​포함하는 목록을 반환합니다. 그러나 이는 너무 많은 메모리 낭비이기 때문에 나중에 반복자를 반환하는 함수 세트(참고: iteritems(), iterkeys(), itervalues()(Python 2.2에서 나타나기 시작함)를 추가했습니다. 메모리를 절약하지만 반복자는 이 함수를 호출한 후 dict의 변경 사항을 반영할 수 없습니다. 그래서 항상 최신 요소를 나타내는 viewitems()가 추가되었습니다. Python 3.x에는 2.x의 viewitems()와 동일한 항목 함수가 하나만 있습니다.

사전 병합

1. dd = dict(dict1.items() + dict2.items())

그러나 위의 분석 지침에 따르면 실제로 항목을 호출하여 해당 목록을 반환한 다음 목록 추가를 수행하고 마지막으로 목록을 사전으로 초기화합니다.

2. dict(dict1, **dict2)

사전의 키는 문자열이어야 합니다. Python 2(인터프리터는 CPython임)에서는 문자열이 아닌 키를 키로 사용할 수 있지만 속지 마십시오. 이 해킹은 표준 CPython 런타임 환경을 사용하는 Python 2에서 작동합니다.

위 명령문은

dd = dict1.copy()

dd.update(dict2)

여기서 dd.update(dict2)와 동일합니다.

for k in dict2

 dd[k] = dict2[k]

와 동일합니다. 업데이트 기능은 존재하지 않는 항목을 추가할 수 있을 뿐만 아니라 요소뿐만 아니라 기존 요소도 수정합니다.

그리고 위에서 우리는 업데이트와 for...in을 통해 사전을 병합할 수도 있다는 것을 알고 있습니다.

정렬

아아앙

위 내용은 Python dict 사전 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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