4 回答

TA貢獻(xiàn)1895條經(jīng)驗 獲得超3個贊
內(nèi)置string模塊提供包含字母表的字符串。您可以使用一行代碼從字母到數(shù)字進行字典:
import string
letter_to_number = {l:n+1 for (l,n) in zip(string.ascii_uppercase, range(len(string.ascii_uppercase)))}
# {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}

TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊
您可以使用內(nèi)置ord函數(shù)返回任何字符的 unicode 代碼點(作為整數(shù))。
>>> ord('A')
65
如果你愿意,你可以從中減去一個偏移量。
>>> offset = ord('A') - 1
>>> ord('A') - offset
1
>>> ord('B') - offset
2

TA貢獻(xiàn)1871條經(jīng)驗 獲得超8個贊
您可以使用 ascii 碼。例如:
num = ord(letter1.lower()) - ord('a') + 1
每個字符都由ascii 碼中的一個數(shù)字表示。您可以使用 將您的字母轉(zhuǎn)換為 ascii 代碼ord,并從中減去字母“a”的 ascii 代碼。所有字母在 ascii 表中都是連續(xù)的。我補充說.lower(),如果你有大寫或小寫,你應(yīng)該將它分成兩種情況。完整代碼看起來像這樣(在變量中給定一個字母letter1:
if letter`.islower():
num = ord(letter1) - ord('a') + 1
else:
num = ord(letter1) - ord('A') + 1
(+1 是如果你從 1 而不是 0 開始計數(shù))
添加回答
舉報