파 이 썬 사전 요약
사전 만 들 기
흔히 볼 수 있 는 사전 생 성 방법 은 먼저 빈 사전 을 만 든 다음 에 키(key)와 값(value)을 하나씩 추가 하 는 것 입 니 다.예 를 들 어 사전 person={'name':'tome','age':22,'city':'Shanghai,'ID':'073569'}을 만 들 면 다음 코드 를 사용 할 수 있 습 니 다.
person = {}
person['name'] = 'Tom'
person['age'] = 22
person['city'] = 'Shanghai'
person['ID'] = '073569'
print(person)
출력 결 과 는:{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
이러한 생 성 방식 은 간단 하고 원시 적 이 며 코드 가 간결 하고 우아 하지 않다.우 리 는 zip 함수 로 간단하게 이 사전 을 만 듭 니 다.
attrs = ['name', 'age', 'city', 'ID']
values = ['Tom', 22, 'Shanghai', '073569']
person = dict(zip(attrs, values))
print(person)
출력 결 과 는 원래 코드 와 일치 합 니 다.자전 을 편력 하 다
실제 응용 에서 우 리 는 사전 을 옮 겨 다 니 며 실현 하 는 방법 은 다음 과 같은 코드 를 참고 할 수 있다.
attrs = ['name', 'age', 'city', 'ID']
values = ['Tom', 22, 'Shanghai', '073569']
person = dict(zip(attrs, values))
for key, value in person.items():
print('Key:%-6s, Value:%s'%(key, value))
출력 결 과 는:Key:name , Value:Tom
Key:age , Value:22
Key:city , Value:Shanghai
Key:ID , Value:073569
키 쌍
실제 응용 프로그램 에서,때때로 우 리 는 사전 의 어떤 값(value)에 대응 하 는 키(key)를 찾 아야 한다.사전 을 옮 겨 다 니 는 것 은 선택 이 고,키 값 을 바 꾸 는 것 은 다른 선택 이다.키 값 을 맞 추 는 실현 코드 는 다음 과 같 습 니 다.
attrs = ['name', 'age', 'city', 'ID']
values = ['Tom', 22, 'Shanghai', '073569']
person = dict(zip(attrs, values))
print(' :')
print(person)
Person = {v:k for k,v in person.items()}
print(' :')
print(Person)
출력 결 과 는:조정 전:
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
대조 후:
{'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'}
순서 사전 OrderedDict
Python 의 사전 은 무질서 합 니 다.꺼 낸 키 는 무질서 합 니 다.hash 에 따라 저장 되 기 때 문 입 니 다.때때로 우 리 는 사전 의 항목(items)이나 키(keys)가 질서 있 게 저장 되 어야 한다.이때 collections 모듈 의 OrderedDict 를 사용 할 수 있다.이것 은 질서 있 는 사전 구조 이다.
예제 코드 는 다음 과 같 습 니 다(Python 버 전 은 3.5.2).
from collections import OrderedDict
d = {}
d['Tom']='A'
d['Jack']='B'
d['Leo']='C'
d['Alex']='D'
print(' (dict):')
for k,v in d.items():
print(k,v)
d1 = OrderedDict()
d1['Tom']='A'
d1['Jack']='B'
d1['Leo']='C'
d1['Alex']='D'
print('
(OrderedDict):')
for k,v in d1.items():
print(k,v)
출력 결과:무질서 사전(dict):
Leo C
Jack B
Tom A
Alex D
순서 사전(OrderedDict):
Tom A
Jack B
Leo C
Alex D
기본 사전 collections.defaultdict
collections.defaultdict 는 Python 내 에 dict 류 를 만 드 는 하위 클래스 입 니 다.첫 번 째 매개 변 수 는 default 입 니 다.factory 속성 은 초기 값 을 제공 합 니 다.기본 값 은 None 입 니 다.그것 은 하나의 방법 을 덮어 쓰 고 인 스 턴 스 변 수 를 추가 합 니 다.다른 기능 은 dict 와 같 지만 존재 하지 않 는 키 에 기본 값 을 제공 하여 KeyError 이상 을 피 할 수 있 습 니 다.
우 리 는 통계 목록 에 있 는 단어의 주파 수 를 예 로 들 어 collections.defaultdict 의 장점 을 보 여 줍 니 다.
일반적인 상황 에서,우리 통계 목록 의 단어 주파수 코드 는 다음 과 같다.
words = ['sun', 'moon', 'star', 'star',\
'star', 'moon', 'sun', 'star']
freq_dict = {}
for word in words:
if word not in freq_dict.keys():
freq_dict[word] = 1
else:
freq_dict[word] += 1
for key, val in freq_dict.items():
print(key, val)
출력 결 과 는 다음 과 같 습 니 다.sun 2
moon 2
star 4
collections.defaultdict 를 사용 하면 코드 를 최적화 할 수 있 습 니 다.
from collections import defaultdict
words = ['sun', 'moon', 'star', 'star',\
'star', 'moon', 'sun', 'star']
freq_dict = defaultdict(int)
for word in words:
freq_dict[word] += 1
for key, val in freq_dict.items():
print(key, val)
다른 기본 초기 값 은 set,list,dict 등 입 니 다.사전 의 값 에 접근 하기
익숙 한 사각형 괄호 에 해당 하 는 키 를 넣 으 면 다음 과 같은 인 스 턴 스 가 있 습 니 다.
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
# :
#dict['Name']: Zara
#dict['Age']: 7
사전 에 없 는 키 로 데 이 터 를 접근 하면 다음 과 같이 출력 오류 가 발생 합 니 다.
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Alice']: ", dict['Alice'];
이상 인 스 턴 스 출력 결과:#KeyError: 'Alice'[/code]
사전 을 고치다
사전 에 새로운 내용 을 추가 하 는 방법 은 새로운 키/값 쌍 을 추가 하 는 것 입 니 다.기 존 키/값 을 수정 하거나 삭제 하 는 것 은 다음 과 같은 인 스 턴 스 입 니 다.
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
# :
#dict['Age']: 8
#dict['School']: DPS School
사전 요소 삭제단일 요 소 를 삭제 할 수도 있 고 사전 을 비 울 수도 있 습 니 다.비 울 때 는 한 가지 조작 만 필요 합 니 다.
사전 삭제 용 del 명령 을 표시 합 니 다.다음 인 스 턴 스:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; # 'Name'
dict.clear(); #
del dict ; #
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
# , del :
dict['Age']:
사전 내장 함수&방법Python 사전 에는 다음 과 같은 내장 함수 가 포함 되 어 있 습 니 다.
cmp(dict1, dict2) # 。
len(dict) # , 。
str(dict) # 。
type(variable) # , 。
Python 사전 에는 다음 과 같은 내장 방법 이 포함 되 어 있 습 니 다.
radiansdict.clear() #
radiansdict.copy() #
radiansdict.fromkeys() # , seq ,val
radiansdict.get(key, default=None) # , default
radiansdict.has_key(key) # dict true, false
radiansdict.items() # ( , )
radiansdict.keys() #
radiansdict.setdefault(key, default=None) # get() , , default
radiansdict.update(dict2) # dict2 / dict
radiansdict.values() #
사전 연습 코드
print('''|--- ---|
|---1、 ---|
|---2、 ---|
|---3、 ---|
|---4、 ---|''')
addressBook={}#
while 1:
temp=input(' :')
if not temp.isdigit():
print(" , ")
continue
item=int(temp)#
if item==4:
print("|--- ---|")
break
name = input(" :")
if item==1:
if name in addressBook:
print(name,':',addressBook[name])
continue
else:
print(" !")
if item==2:
if name in addressBook:
print(" -->>",name,":",addressBook[name])
isEdit=input(" (Y/N):")
if isEdit=='Y':
userphone = input(" :")
addressBook[name]=userphone
print(" ")
continue
else:
continue
else:
userphone=input(" :")
addressBook[name]=userphone
print(" !")
continue
if item==3:
if name in addressBook:
del addressBook[name]
print(" !")
continue
else:
print(" ")
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.