Python有选择地从字典中查找和打印值
我编写了以下代码,用于获取给定城市中各个地区及其各自邮政编码的输出:Python有选择地从字典中查找和打印值,python,python-3.x,python-2.7,dictionary,Python,Python 3.x,Python 2.7,Dictionary,我编写了以下代码,用于获取给定城市中各个地区及其各自邮政编码的输出: zipcode = {"Trap City":{"C District": 100, "D District": 103, "E District": 104, "S District": 105}, "Zap City":{"R District": 200, "D District": 201}, "Los City": {"X District": 2
zipcode = {"Trap City":{"C District": 100, "D District": 103,
"E District": 104, "S District": 105},
"Zap City":{"R District": 200, "D District": 201},
"Los City": {"X District": 207, "Y District": 208}}
def list_zip(city):
print(zipcode.get(city))
for (area,code) in zipcode["Trap City"].items():
print(area, code)
输出:
C District 100
D District 103
E District 104
S District 105
如何修改代码以包括接收用户输入(地区名称)并输出其所在城市及其邮政编码的功能
还有,我如何输入邮政编码并获得相应的地区
提前感谢,python初学者 要获取输入,您可以使用:
district=input('Enter your district: ')
要获取其所在城市及其邮政编码,请执行以下操作:
您只需遍历字典:
for city in zipcode:
if district in city:
print(city,zipcode[city][district])
for city in zipcode:
if district in city:
print(city,zipcode[city][district])
您可以通过字典理解创建两个额外的字典。这有一个一次性的成本,但此后只需要O(1)复杂度查找 但是,请注意,此解决方案不是动态/链接的。对原始数据的更改不会自动反映在从属词典中。为此,您应该使用数据库进行调查
d_district = {k2: (k1, v2) for k1, v1 in zipcode.items() for k2, v2 in v1.items()}
print(d_district)
{'C District': ('Trap City', 100),
'D District': ('Zap City', 201),
'E District': ('Trap City', 104),
'R District': ('Zap City', 200),
'S District': ('Trap City', 105),
'X District': ('Los City', 207),
'Y District': ('Los City', 208)}
d_code = {v2: k2 for k1, v1 in zipcode.items() for k2, v2 in v1.items()}
print(d_code)
{100: 'C District',
103: 'D District',
104: 'E District',
105: 'S District',
200: 'R District',
201: 'D District',
207: 'X District',
208: 'Y District'}
如果您使用的是python3,那么对于输入,您可以使用以下内容:
district=input('Enter your district: ')
district=raw_input('Enter your district: ')
如果您使用的是python2,那么对于输入,您可以使用:
district=input('Enter your district: ')
district=raw_input('Enter your district: ')
要获取其所在城市及其邮政编码:只需迭代并应用字典上的条件:
for city in zipcode:
if district in city:
print(city,zipcode[city][district])
for city in zipcode:
if district in city:
print(city,zipcode[city][district])
我建议查看
sqlite3
模块中的内存数据库并将数据存储在那里。这样,您就可以相对轻松地执行所需的查询。