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

能否使用变量作为字典键?并实现字符串字母字典值求和

Python中用变量作为字典键&计算Scrabble单词分值

当然可以用变量作为字典的键!只要变量的类型是可哈希的(比如字符串、整数、元组这类不可变类型)就完全没问题——你这里用的字符串类型letter变量,刚好符合要求,完全可以用来从SCRABBLE_LETTER_VALUES里取值。

不过看你的代码,有个小疏漏会导致运行报错:你没有初始化score变量。在开始累加之前,得先把score设为0,不然Python不知道这个变量的初始值是什么。

修正后的完整代码应该是这样的:

SCRABBLE_LETTER_VALUES = { 'a': 1, 'b': 3, 'c': 3, 'd': 2, 'e': 1, 'f': 4, 'g': 2, 'h': 4, 'i': 1, 'j': 8, 'k': 5, 'l': 1, 'm': 3, 'n': 1, 'o': 1, 'p': 3, 'q': 10, 'r': 1, 's': 1, 't': 1, 'u': 1, 'v': 4, 'w': 4, 'x': 8, 'y': 4, 'z': 10 }
word = 'maths'
score = 0  # 必须先初始化累加变量
for letter in word:
    score += SCRABBLE_LETTER_VALUES[letter]
print(score)  # 输出结果:3+1+1+4+1=10

如果想让代码更简洁,还可以用sum()函数结合生成器表达式,一行就能算出总分:

score = sum(SCRABBLE_LETTER_VALUES[letter] for letter in word)

这样既省去了手动初始化和循环累加的步骤,代码可读性也更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:56:24