我有下列词典:
{'grade': '7', 'current_student_sum': 1559}
{'grade': '8', 'current_student_sum': 1638}
{'grade': 'KF', 'current_student_sum': 1588}
{'grade': 'KA', 'current_student_sum': 1588}
{'grade': 'PA', 'current_student_sum': 366}
{'grade': 'PF', 'current_student_sum': 54}
{'grade': 'PP', 'current_student_sum': 384}
我试图找到一个最干净的方法来循环通过那里,并以'p'开始对任何等级进行求和(对'K'也一样)
最终结果:
我想让字典看起来像这样:
{'grade': '7', 'current_student_sum': 1559}
{'grade': '8', 'current_student_sum': 1638}
{'grade': 'K', 'current_student_sum': 3176}
{'grade': 'P', 'current_student_sum': 816}
另一种解决方案是:
{
'grade': 'K', 'student_sum': 3176,
'grade': 'P', 'student_sum': 816,
..etc
}
我见过使用Counter
的方法,但这仅限于在字典中匹配键的情况
如果把它们列成列表或者做些什么让它更容易些的话,它们不一定要成为字典
使用
collections.defaultdict
例如:
输出:
您可以使用
itertools.groupby
:输出:
矢量化解决方案可用于第三方:
相关问题 更多 >
编程相关推荐