为了账号安全,请及时绑定邮箱和手机立即绑定

Python字典列表检索过程

Python字典列表检索过程

潇潇雨雨 2022-10-05 18:24:06
我一直在努力解决一个涉及基于每个区域内的开始范围和结束范围的区域的邮政编码的问题。我似乎无法弄清楚如何使用下面的字典来浏览我的邮政编码列表。最终我需要一个列表,上面写着邮政编码 6015 属于区域 Amydict = {'Territory a': [60000,60999], 'Territory b': [90000,90999], 'Territory c': [70000,700999]}myzips = [60015,60016,60017,90001,90002,90003,76550,76556,76557]我已经研究过如何在字典中调用值,但我没有看到有一种很好的方法来调用键,在我的例子中是区域描述。我并不完全相信字典是要走的路,但我想不出另一种方式,所有元素都保持在一起以便在未来的函数或循环中被调用。任何帮助将不胜感激。
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

字典不应该以这种方式使用。尽管如此,这里有一个解决方案可以解决您的问题。


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

对于给定的每个邮政编码,我们会检查它是否在所有地区的邮政编码范围内。如果是,我们打印它。


查看完整回答
反对 回复 2022-10-05
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我会改变mydict,所以关键是邮政编码,价值是领土。大概没有属于两个地区的邮政编码。


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,因此newdict.get将返回None。


查看完整回答
反对 回复 2022-10-05
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我在 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  


查看完整回答
反对 回复 2022-10-05
  • 3 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号