簡體   English   中英

Python字典列表檢索過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM