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