3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
字典不應(yīng)該以這種方式使用。盡管如此,這里有一個(gè)解決方案可以解決您的問題。
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
對(duì)于給定的每個(gè)郵政編碼,我們會(huì)檢查它是否在所有地區(qū)的郵政編碼范圍內(nèi)。如果是,我們打印它。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
我會(huì)改變mydict,所以關(guān)鍵是郵政編碼,價(jià)值是領(lǐng)土。大概沒有屬于兩個(gè)地區(qū)的郵政編碼。
newdict = {}
for territory, zipcodes in mydict.items():
for zipcode in zipcodes:
newdict[zipcode] = territory
現(xiàn)在您可以獲取列表中所有郵政編碼的地區(qū)
for zipcode in myzips:
print(zipcode, newdict.get(zipcode)
請(qǐng)注意,在您發(fā)布的數(shù)據(jù)中,沒有郵政編碼在myzips中mydict,因此newdict.get將返回None。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
我在 Sri 和 Eric 的幫助下完成了這項(xiàng)工作。我讓它工作。我剛剛為 Territory(final_list) 制作了一個(gè)不同的列表,然后遍歷每個(gè)列表。
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
添加回答
舉報(bào)