自学内容网 自学内容网

python 字典里的value

各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类 型,请实现函数transfer-score(score-dict),将分数修改成int类型
不同于上—篇,本次字典的结构变得复杂了,但思路不变,仍然要遍历字典,只是在遍历时, 要根据value的类型决定如何进行处理,如果value的类型是字典,那么则仍然按照上—篇的方 法进行处理,如果value的类型是列表,则需要对列表里的元素类型进行判断,如果是字符
串,则直接转换,如果是字典,则需要按照上—篇的方法进行处理,这次,我采用递归函数进 行处理。

import pprint
def transfer_score(score_dict):
   
   #如果score_dict是字典类
   if isinstance(score_dict, dict):
      for key, value in score_dict.items():
         score_dict[key]=transfer_score(value)
      return score_dict
   
   #如果score_dict是列表类
   
   if isinstance(score_dict, list):
      score_lst = []
      for item in score_dict:
         score_lst.append(transfer_score(item))
      return score_lst
   
   #如果score_dict是字符串类
   if isinstance(score_dict, str):
      return int(score_dict)
      
      
   



if __name__ == '__main__':
   data = {
      'python': {'上学期': "99", '下学期': "98"},
      'c++': ['95', '98', '97'],
      'java': [{'月考': '85', '期中考试': '88', '期末考试': '90'}]
   }
   
   pprint.pprint(transfer_score(data))

原文地址:https://blog.csdn.net/qingcheng_123456/article/details/138001421

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!