Я написал следующий код для получения результатов из разных районов, расположенных в данном городе, и их соответствующих почтовых индексов:
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
Как мне изменить свой код, чтобы включить возможность получения ввода от пользователя (District Name) и вывести город, в котором он находится, и его почтовый индекс?
Также как я мог бы ввести почтовый индекс и получить соответствующие округа?
Заранее спасибо, новичок в питоне.
Чтобы получить вход, вы можете использовать:
district=input('Enter your district: ')
Чтобы получить город, в котором он находится, и его почтовый индекс: вам нужно только перебирать словарь:
for city in zipcode:
if district in city:
print(city,zipcode[city][district])
если вы используете python3, то для ввода вы можете использовать это:
district=input('Enter your district: ')
и если вы используете python2, то для ввода вы можете использовать это:
district=raw_input('Enter your district: ')
Чтобы получить город, в котором он находится, и его почтовый индекс: вам нужно только выполнить итерацию и применить условие к словарю:
for city in zipcode:
if district in city:
print(city,zipcode[city][district])
Вы можете создать несколько дополнительных словарей с помощью понимания словаря. Это одноразовая стоимость, но после этого требуется только поиск сложности (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),
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: District',
200: 'R District',
201: 'D District',
207: 'X District',
208: 'Y District'}
sqlite3
модульsqlite3
, базу данных в памяти и сохранить там свои данные. Таким образом, вы можете делать запросы так, как вы хотите, относительно легко.