Python 입문 부터 포기 까지(3)
14276 단어 Python
2011/12/11 Mon 13:58
자전.
이름 으로 값 을 인용 하 는 데이터 구 조 는 맵(mapping)이 고 python 에 서 는 사전 으로 이 루어 집 니 다.
사용 사전 만 들 기
직접 생 성:
phonebook = {'Alice': '1234', 'Bob': '2345'}
phonebook
Out[224]: {'Alice': '1234', 'Bob': '2345'}
또는 키워드 매개 변 수 를 통 해:
phonebook = dict(Alice = '1234', Bob='2345')
# expression, ‘Alice’ Alice
phonebook
Out[228]: {'Alice': '1234', 'Bob': '2345'}
또는 키 값 을 통 해 시퀀스 를 만 듭 니 다:
items = [('Alice','1234'), ('Bob','2345')]
phonebook = dict(items)
phonebook
Out[232]: {'Alice': '1234', 'Bob': '2345'}
dict 의 key 는 임의의 변 하지 않 는 형식 일 수 있 습 니 다.key 가 존재 하지 않 으 면 자동 으로 추가 합 니 다.예 를 들 어:
phonebook
Out[232]: {'Alice': '1234', 'Bob': '2345'}
phonebook['Conan'] = '3456'
phonebook
Out[235]: {'Alice': '1234', 'Bob': '2345', 'Conan': '3456'}
텍스트 포맷:
'Conan\'s phonenumber is %(Conan)s' % phonebook
Out[237]: "Conan's phonenumber is 3456"
백분율 뒤에 키 를 지정 하고()로 묶 고 뒤에 다른 설명 요 소 를 따라 가 야 합 니 다.예 를 들 어 s.
사전 방법
copy 얕 은 복사 실현:
phonebook
Out[261]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456', '6666']}
y = phonebook.copy()
y['Bob'] = '8888'
y
Out[264]: {'Alice': '1234', 'Bob': '8888', 'Conan': ['3456', '6666']}
phonebook
Out[265]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456', '6666']}
y['Conan'].remove('6666')
y
Out[267]: {'Alice': '1234', 'Bob': '8888', 'Conan': ['3456']}
phonebook
Out[268]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456']}
얕 은 복사 에서 교 체 는 원래 의 것 에 영향 을 주지 않 지만 제자리 수정 은 안 됩 니 다.원시 사전 에 도 같은 값 이 있 고 영향 을 받 을 수 있 기 때 문 입 니 다.
딥 복사:딥 복사
from copy import deepcopy
dc = deepcopy(phonebook)
dc
Out[271]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456']}
phonebook
Out[272]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456']}
dc['Conan'].remove('3456')
dc
Out[274]: {'Alice': '1234', 'Bob': '2345', 'Conan': []}
phonebook
Out[275]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456']}
dc['Kid'] = '9999'
dc
Out[277]: {'Alice': '1234', 'Bob': '2345', 'Conan': [], 'Kid': '9999'}
phonebook
Out[278]: {'Alice': '1234', 'Bob': '2345', 'Conan': ['3456']}
key 시퀀스 에서 dict:from keys 구성
dict.fromkeys(['alpha','beta', 'gamma'])
Out[279]: {'alpha': None, 'beta': None, 'gamma': None}
사전 항목 에 접근:get,없 는 항목 에 대해 잘못 보고 하지 않 고 None 또는 사용자 정의 default 로 돌아 갑 니 다.키 로 직접 가 져 가면 오류 가 발생 합 니 다.
greek
Out[288]: {'alpha': 'a', 'beta': 'b', 'gamma': 'c'}
greek.get('alpha')
Out[289]: 'a'
greek.get('delta')
greek.get('delta','N/A')
Out[291]: 'N/A'
greek.get('beta','N/A')
Out[292]: 'b'
greek['gamma']
Out[293]: 'c'
greek['delta']
Traceback (most recent call last):
File "" , line 1, in
greek['delta']
KeyError: 'delta'
검색 키 존재:haskey
greek.has_key('alpha')
Out[295]: True
greek.has_key('eta')
Out[296]: False
반환(키,값):items
greek.items()
Out[297]: [('alpha', 'a'), ('beta', 'b'), ('gamma', 'c')]
반환 키:keys
greek.keys()
Out[298]: ['alpha', 'beta', 'gamma']
반환 값:values
greek
Out[313]: {'alpha': 'A', 'beta': 'b', 'eta': 'e', 'gamma': 'c'}
greek.values()
Out[314]: ['b', 'e', 'A', 'c']
기본 값 설정:setdefault
greek.setdefault('alpha','Nil')
Out[299]: 'a'
greek.setdefault('zeta','Nil')
Out[300]: 'Nil'
greek
Out[301]: {'alpha': 'a', 'beta': 'b', 'gamma': 'c', 'zeta': 'Nil'}
이 키 가 있 으 면 value 를 되 돌려 줍 니 다.그렇지 않 으 면 default 을 추가 하고 설정 합 니 다.
y 사전 을 x 사전 으로 업데이트 합 니 다:y.update(x)y 에 x 의 한 항목 이 없 으 면 이 key 가 없 으 면 추가 합 니 다.있 으 면 x 에 해당 하 는 value 로 업데이트 합 니 다.
newgreek = dict(alpha='A',eta='e')
newgreek
Out[310]: {'alpha': 'A', 'eta': 'e'}
greek
Out[311]: {'alpha': 'a', 'beta': 'b', 'gamma': 'c'}
greek.update(newgreek)
greek
Out[313]: {'alpha': 'A', 'beta': 'b', 'eta': 'e', 'gamma': 'c'}
THE END
월요일,11.12 월 2017 03:12 오후
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.