May-13-2021, 03:14 PM
Hi everyone,
First of all I want to say that I really appreciate this forum and Ive learned alot since I joined!
Im trying to write a func that icludes input validation for a nested dict, converting it to a list of tupples and then arrange it by order.
this is the nested dict:
Thanks for any kind of help!
First of all I want to say that I really appreciate this forum and Ive learned alot since I joined!
Im trying to write a func that icludes input validation for a nested dict, converting it to a list of tupples and then arrange it by order.
this is the nested dict:
{'Afghanistan': {'Gold': 0, 'Silver': 0, 'Bronze': 2, 'Total': 2}, 'Albania': {'Gold': 0, 'Silver': 0, 'Bronze': 0, 'Total': 0}, 'Algeria': {'Gold': 5, 'Silver': 4, 'Bronze': 8, 'Total': 17}}this is the output I want to get in the end:
Output:[(' 1 , ‘Algeria’, 17), (2, 'Afghanistan, 2), (3, ‘Albania, 0)[
Thats my try:def rank_countries(dict1): if isinstance(dict1, dict): for i in dict1: if isinstance(dict1[i], dict): new_list = [(k, v['Total']) for k, v in dict1.items()] new_list=sorted(new_list, key= lambda tup: tup[1], reverse= True) return new_list else: return 'Input must be a nested dictionary.'which give me this output:
Output:[(' ‘Algeria’, 17), ('Afghanistan, 2), ( ‘Albania, 0)[
So I get the ordeer I want but I dont know how to add the digits in start of each tuple that declair the rank of the country... also Im not sure in my input validation for the nested dicionary is good or its only right for the first dictionary..Thanks for any kind of help!