我正在尝试从列表中的单词中读取每个字符,然后根据该单词中的每个字母为它们分配一个值。我的代码太长了,我相信必须有一个更短的方法来做...

    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/

10-12 18:51
查看更多