用数字本身替换每个字母

时间:2019-06-04 01:49:36

标签: python python-3.x dictionary

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

invalid literal for int() with base 10

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

long long

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

3 个答案:

答案 0 :(得分:4)

字符串是不可变的。 word.replace()返回修改字符串,但不更新word。而且您也无法将字符串更改为数字列表。

您根本不需要使用replace,只需将转换加起来即可。

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

答案 1 :(得分:3)

您肯定会使事情变得不必要地复杂。所有小写​​字母字符均按顺序编码。获取他们的代码并将其加起来:

def conversion(word):
    return sum(ord(x) - ord('a') + 1 for x in word)

conversion('apple')
#50

请注意,此代码不会正确处理大写字母或标点符号。

答案 2 :(得分:0)

尝试一下(这将处理大写和小写):

def conversion(word):
   return sum([ord(x.lower()) - 96 for x in word])
>>> conversion("AppLe")
50