Попробуйте этот код
public partial class ssplashscreen : Form
{
public ssplashscreen()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Increment(1);
if (progressBar1.Value == 100)
{
timer1.Stop();
this.Hide();
Form frm = new login();
frm.Show();
}
}
}
Эта проблема может быть выполнена несколькими способами, но я сделал функцию get_disctrict_and_city()
, которая имеет один параметр postal_code
и возвращает кортеж с district
и city
:
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 get_disctrict_and_city(postal_code, data=zipcode):
for city, districts in data.items():
for district, code in districts.items():
if code == postal_code:
return district, city
postal_code=int(input('Enter postal code: '))
district, city = get_disctrict_and_city(postal_code)
print('District = {} City = {}'.format(district, city))
Выход:
Enter postal code: 100
District = C District City = Trap City
С «zipcode [city]» вы получаете весь словарь. Я предполагаю, что пользователь должен войти в Район как String?
for city in zipcode:
if district in list(zipcode[city].keys()):
print(city,zipcode[city][district])
list (zipcode [city] .keys ()) предоставляет вам все ключи из города-словаря, на которые вы можете проверить район. Для Python 2.x это просто будет zipcode [city] .keys (), чтобы получить список.
Просто преобразуйте zipcode
с пониманием dict, чтобы вместо этого индексировать zipcodes:
{z: (c, d) for c, i in zipcode.items() for d, z in i.items()}
Это выдает:
{100: ('Trap City', 'C District'), 103: ('Trap City', 'D District'), 104: ('Trap City', 'E District'), 105: ('Trap City', 'S District'), 200: ('Zap City', 'R District'), 201: ('Zap City', 'D District'), 207: ('Los City', 'X District'), 208: ('Los City', 'Y District')}
С помощью этого нового dict вы можете легко получить город и район от данного почтового индекса.
Я мало знаю о python, но вы можете это сделать. Я прав, чтобы сделать это, как если бы вы делали это в R. По googling я придумал следующее:
import pandas as pd
def get_city_dist(num,dicts):
s = pd.DataFrame(dicts)==num
m = list(s.columns[s.any()]) + list(s.index[s.T.any()])
return dict(zip(["city","District"], m))
get_dis_cit(103,zipcode)
Out[122]: {'city': 'Trap City', 'District': 'D District'}
get_dis_cit(100,zipcode)
Out[123]: {'city': 'Trap City', 'District': 'C District'}
get_dis_cit(200,zipcode)
Out[124]: {'city': 'Zap City', 'District': 'R District'}
get_dis_cit(208,zipcode)
Out[125]: {'city': 'Los City', 'District': 'Y District'}