전 국가 코드 목록을 사용하여 N 개의 우편 번호 목록을 명명하는 no-SQL 솔루션을 개발하기 위해 노력하고 있습니다.파이썬에서의 빠른 검색 - 우편 번호
{ 'Belowra': 지금까지 내가 형태로 NSW의 상태에 대한 내 참조 사전이 2545, 'Yambulla'2550 'Bingie'2537 ... [N = 4700]
내 함수는 우편 번호의 이름을 조회하려면이 옵션을 사용하여 N이 충분히 큰 경우 작은 목록에 대한 확인
def look_up_sub(pc, settings):
output=[]
for suburb, postcode in postcode_dict.items():
if postcode == pc and settings=='random':#select match at random
print(suburb) #remove later
output.append(suburb)
break #stop searching for matches
elif postcode == pc and settings=='all': #print all possible names for postcode
print(suburb) #remove later
return output
N=[2000,2020,2120,2019]
for i in N:
look_up_sub(i, 'random')
>>>Millers Point
>>>Mascot
>>>Westleigh
>>>Banksmeadow
동안은,이 비효율적 인 접근 방식이 매우 느립니다. 나는이 작업을 상당히 가속화하기 위해 numpy 배열을 사용하는 방법에 대해 생각 해왔고 이것을 접근하는 더 빠른 방법을 찾고있다.
왜 일치 항목을 찾으려면 * 사전을 반복 하시겠습니까? 그 점을 모두 무시하면 튜플 목록을 얻을 수 있습니다. 데이터 구조가 거꾸로되어'postcode : suburb'에서 시작해야합니다. 그러면'pc'를 전달하면 교외리스트를 얻은 다음 그 목록에서 무작위로 선택하거나 목록에있는 모든 것을 인쇄하십시오. –
동의! 사전의 아름다움은 O (1) 룩업을 반복하면서 그 점을 되풀이합니다. –
덕분에 확실히 도움이되었습니다. 'postcode_dict = dict (우편 번호, 우편 번호) print (postcode_dict [2000])' – lm5050