Python 사전 찾기 Keyerror 문제 해결
dict={'a':1,'b':2,'c':3}
print(dict['a'])
하지만 찾 는 키 가 존재 하지 않 을 때 키 오류:예 를 들 어 print 를 보 려 면(dict[d'])
이때 dict 에 이 key 가 없 기 때문에 바로 잘못 보고 합 니 다.그러면 이때 사실 python 은 우리 에 게 좋 은 해결 방법 을 제공 해 주 었 습 니 다.그것 은 바로 사용 하 는 것 입 니 다.
setdefault,용법 은 다음 과 같 습 니 다:dict.setdefault(key,[이 설정 이 존재 하지 않 는 다 면 값 을 왜 설정 하 시 겠 습 니까?기본 값 은 None 입 니 다])
그러면 여기 서 우 리 는 이 방법 으로 해결 할 수 있다.
print(dict.setdefault('d',0))
그리고 문제 가 없습니다.setdefault 는 dict 에 새 값 을 추가 하려 면 이 함 수 를 사용 하 는 것 입 니 다.단순히 찾 으 려 면 key 가 존재 하지 않 거나 이 키 를 통 해 값 을 읽 을 때 기본 값 을 얻 으 려 면 defaultdict 를 사용 하 는 것 을 권장 합 니 다.먼저 이 이른바 defaultdict 를 소개 합 니 다.collections 모듈 에서 왔 습 니 다.collections 는 집합 모듈 입 니 다.defaultdict(functionfactory)구축 한 것 은 dictionary 와 유사 한 대상 입 니 다.그 중에서 key 의 값 은 스스로 할당 을 확인 하지만 value 의 유형 은 function 입 니 다.factory 의 클래스 인 스 턴 스,그리고 기본 값 을 가지 고 있 습 니 다.여기에 공장 함수 라 는 개념 도 도입 되 었 습 니 다.python 의 공장 함 수 는 내부 함수 들 이 모두 클래스 대상 이 고 그들 을 호출 할 때 실제 적 으로 하나의 인 스 턴 스 를 만 들 었 습 니 다.
예 를 들 어 int(),str(),set()등 이다.여기 서 우 리 는 다음 과 같은 예 를 보 자.
import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = collections.defaultdict(list)
for k, v in s:
d[k].append(v)
print(d['yellow'])
print(d['white'])
print(list(d.items()))
우리 가 마지막 으로 얻 은 출력 결 과 는 다음 과 같다.d 에 대응 하 는 key 가 없 을 때 마지막 으로 빈 목록 으로 돌아 오 는 것 을 볼 수 있 습 니 다.그것 은 우리 가 defaultdict 를 설정 할 때 사용 하 는 공장 함수 가 list 이 고 list 의 기본 값 은 빈 목록 입 니 다.공장 함수 가 set()이면 어떤 모습 일 까요?
import collections
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = collections.defaultdict(set)
for k, v in s:
d[k].add(v)
print(d['yellow'])
print(d['white'])
print(list(d.items()))
결과 출력 은 다음 과 같 습 니 다:추가:python 오류 발생 키 오류:'longitude'
python 오류 발생 키 오류:'longitude'
오류 보고 인 터 페 이 스 는 다음 그림 과 같다.
나 는 인터넷 에서 방법 을 찾 았 는데,확실히 해결 방안 을 찾 았 다.너 에 게 유용 할 수 있 는해결 방안
그러나 내 가 해 보 았 지만 소 용이 없 었 다.그래서 내 가 눈 여 겨 보 니 또 나의 부주의 로 인 한 것 이 었 다.아,다음 그림 입 니 다.longitude 앞 에 쉼표 가 하나 빠 졌 습 니 다.
다음 그림:
그래서 이 문 제 는 해결 되 었 습 니 다.자,저 는 수업 설 계 를 계속 하 겠 습 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.