You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码实现通过->运算符完成不同用户间的积分转移功能

代码修改方案

你的代码不生效有两个核心问题:

  • 原->处理逻辑误用了比较运算符==,完全没有实现转账功能
  • 原get_name函数无法提取->两侧的两个用户名,需要单独处理带转账标识的条目

修改后的完整代码如下,全部用Python基础语法实现,方便理解:

def get_name(string):
    return string.replace("+", "").replace("-", "")

def keepTabs(input_list: list):
    output = {}
    for entry in input_list:
        # 优先处理转账逻辑
        if "->" in entry:
            # 拆分转出方、转入方用户名
            from_user, to_user = entry.split("->")
            # 确保两个用户已在字典中,无记录则初始化为0分
            if from_user not in output:
                output[from_user] = 0
            if to_user not in output:
                output[to_user] = 0
            # 转出方所有积分加到转入方
            output[to_user] += output[from_user]
            # 转出方积分清零
            output[from_user] = 0
            # 转账条目无需处理加减分,直接进入下一条
            continue
        
        # 原有加减分逻辑保持不变
        name = get_name(entry)
        if name not in output:
            output[name] = 0
        if "++" in entry:
            output[name] += 1
        if "--" in entry:
            output[name] -= 1
    return output

print(keepTabs(["Jim--", "John--", "Jordan--", "Jim++", "John--", "Jeff--", "June++", "June->Jim"]))

你提供的测试用例运行后输出为:{'Jim': 1, 'John': -2, 'Jordan': -1, 'Jeff': -1, 'June': 0},完全符合需求:Jim原有0分,接收June转来的1分后最终得1分,June转出后积分清零。

内容的提问来源于stack exchange,提问作者Joshua Bradley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:36:00