python - 用数字自身替换每个字母

标签 python python-3.x dictionary

我想取一个单词的每个字母(a 是 1,b 是 2,等等),然后将它们全部加在一起以求出所有数字的总和。例如,“苹果”将是 50。我有以下代码:

conversions = {
'a': 1,
'b': 2,
'c': 3,
'd': 4,
'e': 5,
'f': 6,
'g': 7,
'h': 8,
'i': 9,
'j': 10,
'k': 11,
'l': 12,
'm': 13,
'n': 14,
'o': 15,
'p': 16,
'q': 17,
'r': 18,
's': 19,
't': 20,
'u': 21,
'v': 22,
'w': 23,
'x': 24,
'y': 25,
'z': 26
}

def conversion(word):
    for letter in word:
        word.replace(letter, str(conversions[letter]))
    word = list(word)
    for number in word:
        number = int(number)
    return sum(word)

但是,这会返回以下错误:

invalid literal for int() with base 10

我可能犯了一些愚蠢的错误,但我似乎无法弄清楚问题出在哪里。任何帮助将不胜感激。

最佳答案

字符串是不可变的。 word.replace() 返回修改后的字符串,它不会更新 word。无论如何,您都无法将字符串更改为数字列表。

您根本不需要使用replace,只需将转化次数相加即可。

def conversion(word):
    return sum(conversions[letter] for letter in word)

关于python - 用数字自身替换每个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56436404/

相关文章:

python - 如何在Python中测试对象是否具有类型dict_values?

python - youtube-dl 完成下载时运行异步函数(python)

python - 对字典的字典进行排序

java - 错误 : Make sure the NICT wordnet db is stored in classpath at:/wnjpn. db

python - 格式化字典键 : AttributeError: 'dict' object has no attribute 'keys()'

python模拟给定理论概率的实际发生次数

python - 如何从 Python 中的任何应用程序捕获剪贴板事件(等效于 onChangeClipboard)

python - 正则表达式找到一对相邻的数字,它们周围有不同的数字

python - 由于命名,MacOS 上的 PySide 和菜单栏不显示任何菜单条目

python - 如何遍历由节点组成的二叉树? (里面有代码)