如何使用字典实现带++/--标记的人员积分加减统计功能
你的现有代码仅定义了操作符和分值的映射,没有对输入的动作列表做遍历拆分、逐次统计的逻辑,修改方案如下:
完整实现代码
def keepTabs(actions: list[str]): score_map = {'++': 1, '--': -1} result = {} for action in actions: # 拆分操作符和人名:最后两位是操作符,前面部分为人名 op = action[-2:] name = action[:-2] # 人名不在统计结果中时初始积分为0 if name not in result: result[name] = 0 # 累加对应操作的分值 result[name] += score_map[op] return result print(keepTabs(actions=["Jim++", "John--", "Jeff++", "Jim++", "John--", "Jeff--", "June++"]))
运行输出
{'Jim': 2, 'John': -2, 'Jeff': 0, 'June': 1}
实现全程未使用导入、lambda或者collections相关方法,完全基于基础字典逻辑实现,符合你的要求。
内容的提问来源于stack exchange,提问作者Dave Shah
相关产品推荐
相关产品推荐

