给字母赋值的更快方法?

2024-06-26 14:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从列表中的单词中读出每个字符,然后根据单词中的每个字母给它们赋值。我的代码太长了,我相信一定有一个更短的方法来实现它。。。在

    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

这也许是个愚蠢的问题,但无论如何还是要谢谢你!在


Tags: 方法代码in列表forif字母字符
3条回答
if 'A'<=c<='Z':
    tempsum+=ord(c)-ord('A')+1

使用^{}计算从A开始的字符偏移量。在

A = ord('A')
for c in tempWord:
    if 'A' <= c <= 'Z':
        tempSum += ord(c) - A + 1

^{pr2}$

关于:

import string

def assign(word):
    return sum(string.uppercase.index(ch.upper())+1 for ch in word)

print assign('SIMPLE')

相关问题 更多 >