如何给每个大写字母分配一个数值?
我该如何给每个大写字母分配一个数字值,然后在后面通过字符串使用这些值,并把它们加起来呢?
比如说:
A = 1, B = 2, C = 3 (etc..)
string = 'ABC'
最后返回的结果是6(在这个例子中)。
9 个回答
4
import string
letter_to_numeral = dict(zip(string.uppercase, range(1, len(string.uppercase) + 1) ))
print letter_to_numeral
>>> {'A': 1, 'C': 3, 'B': 2, 'E': 5, 'D': 4, 'G': 7, 'F': 6, 'I': 9, 'H': 8, 'K': 11, 'J': 10, 'M': 13, 'L': 12, 'O': 15, 'N': 14, 'Q': 17, 'P': 16, 'S': 19, 'R': 18, 'U': 21, 'T': 20, 'W': 23, 'V': 22, 'Y': 25, 'X': 24, 'Z': 26}
def score_string(s):
return sum([letter_to_numeral[character] for character in s])
score_string('ABC')
>>> 6
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。
11
base = ord('A') - 1
mystring = 'ABC'
print sum(ord(char) - base for char in mystring)
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
6
你可以使用 ord
这个函数来获取字符的ASCII码,然后再减去64。
def codevalue(char):
return ord(char) - 64