Python 입문 부터 포기 까지(3)

14276 단어 Python
Python 입문 부터 포기 까지(3)
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 오후

좋은 웹페이지 즐겨찾기