[英]Mapping of key-values
我有一本字典,內容如下:
{'items': [{'id': 1151, 'name': 'Sun'},
{'id': 1152, 'name': 'Rain'},
{'id': 1168, 'name': 'Clouds'},
{'id': 1169, 'name': 'Clear'},
{'id': 1170, 'name': 'Mist'},
{'id': 1171, 'name': 'Fog'},
{'id': 1231, 'name': 'Drizzle'}]}
根據有關“霧”或“細雨”或其他任何形式的天氣信息,我應該形成一個集合:
info = {a: 0,
'weather_id': 1170,
'some parameter': 0,
'vbla': None,
'ff': some value}
我應該在哪里繪制天氣狀況圖。 目前,我只是為每種情況編寫了一個IF條件,這當然是非常愚蠢的:
if weatherConditions=='Clouds':
info = {a: 0,
'weather_id': 1168,
'some parameter': 0,
'vbla': None,
'ff': some value}
您能幫我解決我的問題嗎?
您可以將“ Sun”,“ Rain”,“ Clouds”等用作鍵值並具有嵌套字典。 可能會變得凌亂,但它會做您需要的
更改您的dict
以便鍵是name
,而id
是值,這將容易得多(假設天氣name
永遠不會重復):
def get_weather_info(new_dic, weather):
if weather in new_dic:
return {
'a': 0,
'weather_id': new_dic[weather],
'some parameter': 0,
'vbla': None,
'ff': None
}
d = {'items': [{'id': 1151, 'name': 'Sun'},
{'id': 1152, 'name': 'Rain'},
{'id': 1168, 'name': 'Clouds'},
{'id': 1169, 'name': 'Clear'},
{'id': 1170, 'name': 'Mist'},
{'id': 1171, 'name': 'Fog'},
{'id': 1231, 'name': 'Drizzle'}]}
new_dic = {dic['name']: dic['id'] for dic in d['items']}
info = get_weather_info(new_dic, 'Rain')
print(info)
我假設您面臨的挑戰是提取與“ weatherConditions”變量值相對應的正確ID。 通過循環瀏覽已概述的字典結構並拉出與之對應的id的方法,可以做到這一點(然后必須將其映射到要包含在集合中的額外變量的正確集合):
my_dict = {'items': [{'id': 1151, 'name': 'Sun'},
{'id': 1152, 'name': 'Rain'},
{'id': 1168, 'name': 'Clouds'},
{'id': 1169, 'name': 'Clear'},
{'id': 1170, 'name': 'Mist'},
{'id': 1171, 'name': 'Fog'},
{'id': 1231, 'name': 'Drizzle'}]}
weatherConditions='Clouds'
for x in range(len(my_dict['items'])):
if weatherConditions == my_dict['items'][x]['name']:
print(my_dict['items'][x]['id'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.