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

如何将列表元素映射到字典值并累加至得分变量?

解决骰子滚动分数累加与列表替换问题

嘿,我来帮你搞定这个问题!你已经有了骰子滚动的列表和分数映射字典,接下来要做的就是把列表里的骰子点数换成对应的分数,再把它们加起来就行啦。

这里有两种简单的实现方式:

方法1:遍历列表同时替换并累加

这种方式可以一边修改原rolls列表的元素,一边把分数累加到my_score里:

import random

scores = {1:1000, 2:200, 3:300, 4:400, 5:500, 6:600}
rolls = []
for i in range(5):
    rolls.append(random.randint(1,6))  # 如果你是在类中编写,这里改成self.rolls.append即可
my_score = 0

# 遍历rolls,替换元素并累加分数
for idx, num in enumerate(rolls):
    # 把当前骰子点数换成对应的分数
    rolls[idx] = scores[num]
    # 累加到my_score
    my_score += rolls[idx]

用enumerate()能同时拿到列表的索引和元素值,这样我们就能直接修改原列表的对应位置,同时完成累加。

方法2:用列表推导式+sum()函数(更简洁)

如果你的主要目的是得到总分数,同时替换rolls列表,这种一行式的写法更清爽:

import random

scores = {1:1000, 2:200, 3:300, 4:400, 5:500, 6:600}
rolls = []
for i in range(5):
    rolls.append(random.randint(1,6))

# 直接生成替换后的分数列表
rolls = [scores[num] for num in rolls]
# 用sum()直接计算总分数
my_score = sum(rolls)

列表推导式会遍历原rolls的每个元素,用字典映射替换成对应分数,生成新的列表覆盖原rolls;sum()函数则直接对这个分数列表求和,一步得到总分数。

两种方法都能达成你的需求,看你更喜欢哪种风格啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:55:47