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

如何不使用导入函数提取嵌套字典对应投掷值并求和?

计算玩家对应掷骰子尝试的和(无导入函数实现)

嘿,咱们来搞定这个问题!这里有个记录游戏玩家掷骰子数据的嵌套字典,需要把每个玩家两次掷骰子的对应尝试数值相加,而且全程不能用任何导入函数。先看看原始数据:

game_data = {
    'A': {'score': 0, 'throw1': [3, 2, 5, 6], 'throw2': [1, 5, 5, 1]},
    'B': {'score': 0, 'throw1': [2, 2, 3, 6], 'throw2': [6, 4, 2, 2]}
}

解决方案思路

核心就是遍历每个玩家,然后把他们的throw1和throw2列表中相同位置的元素一一相加。因为每个玩家都是4次尝试,所以可以通过索引循环来配对元素,或者用更简洁的列表推导式。

方法1:基础循环实现

这种方式更直观,适合新手理解:

# 遍历字典里的每个玩家及其数据
for player, stats in game_data.items():
    # 取出两次掷骰子的结果列表
    first_throws = stats['throw1']
    second_throws = stats['throw2']
    
    # 存储对应尝试的和
    combined_results = []
    # 循环每个尝试的索引,相加对应位置的数值
    for i in range(len(first_throws)):
        combined_results.append(first_throws[i] + second_throws[i])
    
    # 输出结果,也可以把结果存回玩家的字典中
    print(f"玩家{player}的对应尝试和:{combined_results}")
    # 如果需要更新score为总和的话,取消下面注释
    # stats['score'] = sum(combined_results)

运行这段代码后,你会得到:

玩家A的对应尝试和:[4, 7, 10, 7]
玩家B的对应尝试和:[8, 6, 5, 8]

方法2:列表推导式简化

如果想让代码更简洁,用列表推导式一步搞定,同样不需要任何导入:

for player, stats in game_data.items():
    combined_results = [stats['throw1'][i] + stats['throw2'][i] for i in range(len(stats['throw1']))]
    print(f"玩家{player}的对应尝试和:{combined_results}")

两种方法都能完美实现需求,完全基于Python基础语法,没有用到任何外部导入函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:27:15