循环浏览字典中的词典列表



我对python非常陌生,我一直无法为包含字典列表的字典创建一个循环。我将不胜感激!

mylist = {'ID_01': [{'blood type': 'A',
'Age': '15',
'eye colour': 'Green',
'Location': 'Toronto',
'Initial Score': '30',
'Final Score': '50'},
{'blood type': 'B',
'Age': '20',
'eye colour': 'Green',
'Location': 'Tokyo',
'Initial Score': '50',
'Final Score': '80'}],
'ID_02': [{'blood type': 'C',
'Age': '10',
'eye colour': 'Blue',
'Location': 'Toronto',
'Initial Score': '90',
'Final Score': '100'},
{'blood type': 'D',
'Age': '13',
'eye colour': 'Blue',
'Location': 'Tokyo',
'Initial Score': '60',
'Final Score': '90'}]}

new_dictionary = {}

如果位置是多伦多,请添加 ID 和 如果位置是东京,请检查东京(50(的初始分数是否小于多伦多的初始分数(30(,如果东京(80(的最终分数大于多伦多(30(的初始分数,但小于多伦多的最终分数,如果是,将与该ID关联的所有数据添加到new_dictionary。

一个循环,用于将ID数据添加到new_dictionary如果:
initial score of tokyo < initial score of toronto

initial score of toronto < final score of tokyo < final score of toronto

谢谢!

以下是您可以执行的操作:

mylist = {'ID_01': [{'blood type': 'A',
'Age': '15',
'eye colour': 'Green',
'Location': 'Toronto',
'Initial Score': '30',
'Final Score': '50'}],
'ID_02': [{'blood type': 'B',
'Age': '10',
'eye colour': 'Blue',
'Location': 'Tokyo',
'Initial Score': '50',
'Final Score': '80'}]}
initial_score_of_tokyo = [mylist[ID][0]["Initial Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Tokyo'][0]
initial_score_of_toronto = [mylist[ID][0]["Initial Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Toronto'][0]
final_score_of_tokyo = [mylist[ID][0]["Final Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Tokyo'][0]
final_score_of_toronto = [mylist[ID][0]["Final Score"] for ID in mylist.keys() if mylist[ID][0]['Location'] == 'Toronto'][0]

new_dictionary = {}
for ID in mylist.keys():
if mylist[ID][0]['Location'] == 'Toronto' or (initial_score_of_tokyo < initial_score_of_toronto and initial_score_of_toronto < final_score_of_tokyo < final_score_of_toronto):
new_dictionary.update({ID:mylist[ID]})
print(new_dictionary)

输出:

{'ID_01': [{'blood type': 'A',
'Age': '15',
'eye colour': 'Green',
'Location': 'Toronto',
'Initial Score': '30',
'Final Score': '50'}]}

最新更新