[英]Python dictionary list retrieval process
我一直在努力解決一個涉及 zip 代碼到基於每個區域內的開始范圍和結束范圍的區域的問題。 我似乎無法弄清楚如何使用下面的字典來瀏覽我的 zip 代碼列表。 最終我需要一個清單,上面寫着 zip 代碼 6015 屬於區域 A
mydict = {'Territory a': [60000,60999], 'Territory b': [90000,90999], 'Territory c': [70000,700999]}
myzips = [60015,60016,60017,90001,90002,90003,76550,76556,76557]
我已經研究過如何在字典中調用值,但我沒有看到有一種很好的方法來調用鍵,在我的例子中是區域描述。 我並不完全相信字典是通向 go 的方式,但我想不出另一種方式,所有元素都可以在未來的 function 或循環中被調用。
任何幫助將不勝感激。
字典不應該以這種方式使用。 盡管如此,這里有一個解決方案可以解決您的問題。
mydict={'Territory a':[60000,60999],'Territory b': [90000,90999],'Territory c': [70000,70099]}
myzips =[60015,60016,60017,90001,90002,90003,76550,76556,76557]
for zipCode in myzips:
for territory, postCodes in mydict.items():
if (postCodes[0] <= zipCode <= postCodes[1]):
print(str(zipCode) + " is in " + territory)
break
對於給定的每個 zip,我們檢查它是否在所有地區的郵政編碼范圍內。 如果是,我們打印它。
我會改變mydict
所以關鍵是郵政編碼,價值是領土。 大概沒有屬於兩個地區的 zip 代碼。
newdict = {}
for territory, zipcodes in mydict.items():
for zipcode in zipcodes:
newdict[zipcode] = territory
現在您可以獲取列表中所有郵政編碼的地區
for zipcode in myzips:
print(zipcode, newdict.get(zipcode)
請注意,在您發布的數據中,myzips 中的mydict
myzips
,因此newdict.get
將返回None
。
我在 Sri 和 Eric 的幫助下完成了這項工作。 我讓它工作。 我剛剛為 Territory(final_list) 制作了一個不同的列表,然后遍歷每個列表。
h = 0
while h < len(final_list) :
for zipCode in myzips:
for territory, postCodes in dict.items():
if (postCodes[0] <= zipCode <= postCodes[1])and postCodes[2] == final_list[h] :
mylist2.append(str(zipCode)+","+territory)
#break
h += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.