我正在尝试从列表中的单词中读取每个字符,然后根据该单词中的每个字母为它们分配一个值。我的代码太长了,我相信必须有一个更短的方法来做...
for c in tempWord:
if(c == "A"):
tempSum += 1
elif(c == "B"):
tempSum += 2
elif(c == "C"):
tempSum += 3
elif(c == "D"):
tempSum += 4
elif(c == "E"):
tempSum += 5
elif(c == "F"):
tempSum += 6
elif(c == "G"):
tempSum += 7
elif(c == "H"):
tempSum += 8
elif(c == "I"):
tempSum += 9
elif(c == "J"):
tempSum += 10
elif(c == "K"):
tempSum += 11
elif(c == "L"):
tempSum += 12
elif(c == "M"):
tempSum += 13
elif(c == "N"):
tempSum += 14
elif(c == "O"):
tempSum += 15
elif(c == "P"):
tempSum += 16
elif(c == "Q"):
tempSum += 17
elif(c == "R"):
tempSum += 18
elif(c == "S"):
tempSum += 19
elif(c == "T"):
tempSum += 20
elif(c == "U"):
tempSum += 21
elif(c == "V"):
tempSum += 22
elif(c == "W"):
tempSum += 23
elif(c == "X"):
tempSum += 24
elif(c == "Y"):
tempSum += 25
elif(c == "Z"):
tempSum += 26
这可能是一个愚蠢的问题,但是还是谢谢您!
最佳答案
使用ord
计算字符与A
的偏移量。
A = ord('A')
for c in tempWord:
if 'A' <= c <= 'Z':
tempSum += ord(c) - A + 1
A = ord('A')
tempSum = sum(ord(c) - A + 1 for c in tempWord if 'A' <= c <= 'Z')
关于python - 将数字值分配给字母的更快方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20685508/