首页 > 解决方案 > 如何替换列表内字典中的值?

问题描述

例如,这是一个列表

my_list = [{'name':'Tomy', 'review':98, 'job':'engineer'},
           {'name':'John', 'review':52, 'job':'engineer'},
           {'name':'Mike', 'review':77, 'job':'developer'},
           {'name':'Jay', 'review':68, 'job':'student'}]

所以根据这些人的评论分数,如果评论分数低于75,我想按“低分”和“高分”分组,然后“低分”,否则“高分”

所以这就是我所期望的,

my_list = [{'name':'Tomy', 'review':'high score', 'job':'engineer'},
           {'name':'John', 'review':'low score', 'job':'engineer'},
           {'name':'Mike', 'review':'high score', 'job':'developer'},
           {'name':'Jay', 'review':'low score', 'job':'student'}]

所以我试着这样做:

for i in my_list:
   for score in i['review']:
         if score<=75:
            i['review']='low score'
         else:
            i['review']='high score'

但是,这似乎一直在运行,并出现 my_list 不是字典的错误...有人可以帮忙吗?谢谢!

标签: pythonpython-3.x

解决方案


for score in i['review']:中,您尝试遍历一个标量。这是不可能的,也不需要这条线。外循环就足够了:

for i in my_list:
    i['review'] = 'low score' if i['review'] <= 75 else 'high score'

推荐阅读