큰 사전을 통해 파이썬에서 검색의 효율성에 대한 빠른 질문이있었습니다. 쉼표로 구분 된 큰 파일을 읽고 각 줄에서 키와 값을 가져옵니다. 내 키가 이미 사전에있는 경우 사전에 나열된 값에 값을 추가합니다. 키가 사전에없는 경우 값을 추가하기 만하면됩니다. 이전에 나는 이것을 사용했다 :효과적인 사전 검색?
는if key in data_dict.keys():
add values
else:
data_dict[key] = value
이 꽤 빨리 시작하지만 사전이 성장함에 따라 내가 전혀 사용할 수없는 지점에, 느린 속도가 느린됩니다. 나는이에 사전에 키를 검색하는 방식 변경 :
try:
# This will fail if key not present
data_dict[keyStr] = input_data[keyStr] + load_val
except:
data_dict[keyStr] = load_val
이 무한히 빠른, 그리고/쓰기 삼초의 코드 350,000 라인 읽을 수 있습니다.
내 질문에 전화보다 훨씬 오래 sooo 걸릴 내 질문이 있었습니까? 사전에서 키를 검색 할 때 파이썬에서 try
문을 사용하지 않는 이유는 무엇입니까?
일반적으로 _all_ 예외를 catch하고 싶지는 않지만 '예상'이며 예외가 발견되면 처리 할 수 있습니다. 예를 들어, 다음을 사용하십시오 : except KeyError : ... – askewchan
예제 코드가 혼란 스럽습니다. 첫 번째 스 니펫에서'key_dict'에있는'key '가 있는지 확인하고 있지만 두 번째 부분에서는'key'가'input_data'에 없으면'KeyError' 예외를주는 유일한 방법이 될 것입니다. 이것은 완전한 답을 제공하기 어렵게 만듭니다 ... – martineau