日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python字母变成数字怎么办_在Python中将字母转换为数字

發(fā)布時(shí)間:2025/3/11 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字母变成数字怎么办_在Python中将字母转换为数字 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

14 個(gè)答案:

答案 0 :(得分:71)

這樣的事情:

print [ord(char) - 96 for char in raw_input('Write Text: ').lower()]

修改強(qiáng)>

既然你讓我解釋我會(huì)...雖然已經(jīng)在[?]的評(píng)論中得到了很好的解釋。

讓我們?cè)诟嗟囊恍虚_(kāi)始。

input = raw_input('Write Text: ')

input = input.lower()

output = []

for character in input:

number = ord(character) - 96

output.append(number)

print output

這也是一樣的,但更具可讀性。在您嘗試?yán)斫馕业牡谝粋€(gè)答案之前,請(qǐng)確保您能夠理解這里發(fā)生了什么。這里的一切都非常標(biāo)準(zhǔn),簡(jiǎn)單的Python。需要注意的一件事是ord函數(shù)。 ord代表序數(shù),幾乎每種高級(jí)語(yǔ)言都有這種功能。它為您提供了任何角色的數(shù)字表示的映射。 ord的反函數(shù)稱為chr。

chr(ord('x')) == 'x' # for any character, not just x.

如果你自己測(cè)試,a的序數(shù)是97(我上面發(fā)布的第三個(gè)鏈接將顯示完整的ASCII字符集。)每個(gè)小寫(xiě)字母的范圍是97-122(26個(gè)字符。)所以,如果你只需從任何小寫(xiě)字母的序數(shù)中減去96,你將得到它在字母表中的位置,假設(shè)你取'a'== 1.所以,序數(shù)為'b'== 98,'c'== 99,等等當(dāng)你減去96,'b'== 2,'c'== 3等等。

我發(fā)布的初始解決方案的其余部分只是一些Python技巧,你可以學(xué)習(xí)稱為列表理解。但是,我不會(huì)專注于那個(gè),而是專注于學(xué)習(xí)用任何語(yǔ)言解決問(wèn)題,其中ord是你的朋友。我希望這會(huì)有所幫助。

答案 1 :(得分:11)

您可以使用chr()和ord()來(lái)轉(zhuǎn)換字母和整數(shù)。

這是一個(gè)簡(jiǎn)單的例子。

>>> chr(97)

'a'

>>> ord('a')

97

答案 2 :(得分:8)

如果您打算大量使用此轉(zhuǎn)換,請(qǐng)考慮計(jì)算一次并將結(jié)果放入字典中:

>>> import string

>>> di=dict(zip(string.letters,[ord(c)%32 for c in string.letters]))

>>> di['c']

3

優(yōu)點(diǎn)是字典查找非常快,而不是在每次調(diào)用時(shí)遍歷列表。

>>> for c in sorted(di.keys()):

>>> print "{0}:{1} ".format(c, di[c])

# what you would expect....

答案 3 :(得分:8)

不要太基礎(chǔ),但是這個(gè):

>>> char1 = ['a''b''c''d''e''f''g''h''i''j''k''l'

'm''n''o''p''q''r''s''t''u''v''w''x''y''z']

與此非常不同:

>>> char2 = ['a','b','c','d','e','f','g','h','i','j','k','l',

'm','n','o','p','q','r','s','t','u','v','w','x','y','z']

第一個(gè),沒(méi)有逗號(hào)和你的問(wèn)題中的內(nèi)容,是一個(gè)帶有26個(gè)元素字符串的單元素列表。第二個(gè)是26個(gè)元素列表,每個(gè)列表的長(zhǎng)度都是一個(gè)字符。

如果您打印每個(gè):

>>> print char1, len(char1), len(char1[0])

['abcdefghijklmnopqrstuvwxyz'] 1 26

>>> print char2, len(char2), len(char2[0])

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',

'm', 'n', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 26 1

很明顯,需要額外的一步才能將char1的個(gè)別字符轉(zhuǎn)換為iterable。

如果你有sequence個(gè)字符'a'到'z'和/或'A'到'Z',你可以輕松返回list comprehension字符的數(shù)字:

>>> [ord(x)%32 for x in char2]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

17, 18, 19, 20, 21, 22, 23, 24, 25, 26]

對(duì)于您擁有的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,您需要首先訪問(wèn)該字符串:

>>> [ord(x)%32 for x in char1[0]]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,

17, 18, 19, 20, 21, 22, 23, 24, 25, 26]

因此,如果您的代碼清單與您的問(wèn)題相同,則可能是您的問(wèn)題。

合理的替代方案是:[ord(x.lower())-96 for x in char1[0]]

您可以看到,沒(méi)有逗號(hào)的characters=['a''b''c'...]與在['abc...']列表中輸入字符串中的所有字符相同。

所以現(xiàn)在嘗試:

>>> import string

>>> [ord(x.lower())-96 for x in string.letters]

[1,2,...26, 1,2,3...26] # my ellipses

>>> char3=[string.letters] # one string as element[0]

>>> [ord(x)%32 for x in char3[0]]

>>> [ord(x)%32 for x in [string.letters][0]]

答案 4 :(得分:6)

這是我過(guò)去常用的功能。適用于大寫(xiě)和小寫(xiě)。

def convert_char(old):

if len(old) != 1:

return 0

new = ord(old)

if 65 <= new <= 90:

# Upper case letter

return new - 64

elif 97 <= new <= 122:

# Lower case letter

return new - 96

# Unrecognized character

return 0

答案 5 :(得分:5)

[str(ord(c)&31) for c in text]

答案 6 :(得分:2)

這里有一些我用來(lái)將excel列字母轉(zhuǎn)換成數(shù)字的東西(所以限制為3個(gè)字母,但如果你需要更多的話,很容易將它擴(kuò)展出來(lái))。可能不是最好的方式,但它適用于我需要它。

def letter_to_number(letters):

letters = letters.lower()

dictionary = {'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}

strlen = len(letters)

if strlen == 1:

number = dictionary[letters]

elif strlen == 2:

first_letter = letters[0]

first_number = dictionary[first_letter]

second_letter = letters[1]

second_number = dictionary[second_letter]

number = (first_number * 26) + second_number

elif strlen == 3:

first_letter = letters[0]

first_number = dictionary[first_letter]

second_letter = letters[1]

second_number = dictionary[second_letter]

third_letter = letters[2]

third_number = dictionary[third_letter]

number = (first_number * 26 * 26) + (second_number * 26) + third_number

return number

答案 7 :(得分:2)

>>> [str(ord(string.lower(c)) - ord('a') + 1) for c in string.letters]

['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17',

'18', '19', '20', '21', '22', '23', '24', '25', '26', '1', '2', '3', '4', '5', '6', '7', '8',

'9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24',

'25', '26']

答案 8 :(得分:2)

def letter_to_int(letter):

alphabet = list('abcdefghijklmnopqrstuvwxyz')

return alphabet.index(letter) + 1

這里,如果列表包含x,則index(x)函數(shù)返回x的位置值。

答案 9 :(得分:1)

如果目標(biāo)只是轉(zhuǎn)換字母abcd .... xyz和ABCD .... XYZ,我會(huì)使用一個(gè)函數(shù):

from string import letters

def rank(x, d = dict((letr,n%26+1) for n,letr in enumerate(letters[0:52]))):

return d[x]

我寫(xiě)了[0:52]因?yàn)槲业腜ython 2.7版本顯示了值

* ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz *????????àá??????èéê?ìí??D?òó????ùú?üYT?àáa?????èéê?ìí??e?òó????ùú?üyt?

表示string.letters參數(shù)。

因?yàn)閰?shù)d接收一個(gè)值作為默認(rèn)參數(shù),所以在執(zhí)行函數(shù)定義以生成函數(shù)對(duì)象時(shí),此值的微積分僅執(zhí)行一次。

因此,即使該函數(shù)被上訴了三千次,也可以在不重新計(jì)算該值的情況下使用該函數(shù)。

順便說(shuō)一下,對(duì)于函數(shù)的每個(gè)上訴,不再使用lower()。在構(gòu)造默認(rèn)參數(shù)期間,已經(jīng)處理了大寫(xiě)字母的情況。

使用的一個(gè)例子:

word = 'supercalifragilisticexpialidocious'

print ''.join( letter if rank(letter)%3!=0 else '.' for letter in word)

結(jié)果:

s.pe..a .... AG ... st..e.p.a..d .....小號(hào)

它也可以與map()一起使用:

print map(rank,'ImmunoElectroPhoresis')

結(jié)果:

[9,13,13,21,14,15,5,12,5,3,20,18,15,16,8,15,18,5,19,9,19]

答案 10 :(得分:1)

如果您只想將數(shù)字映射到一個(gè)字母,那么只需執(zhí)行以下簡(jiǎn)單的操作:

def letter_to_index(letter):

_alphabet = 'abcdefghijklmnopqrstuvwxyz'

return next((i for i, _letter in enumerate(_alphabet) if _letter == letter), None)

當(dāng)然如果你想讓它從1開(kāi)始,那么只需添加(i + 1代表我,等等。

答案 11 :(得分:1)

使用此功能。它將一串字母表轉(zhuǎn)換為其等效的數(shù)字值:

axis = (^-^) candle^.high candle^.low

答案 12 :(得分:1)

如果您正在查看相反的內(nèi)容,例如1 = A,2 = B等,則可以使用以下代碼。請(qǐng)注意,由于我必須將班級(jí)中的部門(mén)轉(zhuǎn)換為A,B,C等,因此我最多只能達(dá)到2級(jí)。

loopvariable = 0

numberofdivisions = 53

while (loopvariable

if(loopvariable<26):

print(chr(65+loopvariable))

loopvariable +=1

if(loopvariable > 26 and loopvariable <53):

print(chr(65)+chr(65+(loopvariable-27)))

答案 13 :(得分:0)

這是我的解決方案,您希望將字母表中的所有字母轉(zhuǎn)換為英文字母中這些字母的位置,并返回這些字符串。

如果您想詳細(xì)了解它,請(qǐng)告訴我。我使用了以下概念

- 列表理解

- 字典理解

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的python字母变成数字怎么办_在Python中将字母转换为数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩色av | 国产一级特黄aaa大片 | 成人欧美一区二区三区黑人免费 | 成人国产精品久久久 | 欧美性xxxxx| 另类小说色综合 | 日本伦理一区二区 | 欧美美女色图 | 亚洲一区二区三区四区电影 | 免费又黄又爽又猛大片午夜 | 韩国美女主播跳舞 | 国产极品一区 | 日本中文字幕免费观看 | 日本高清视频www夜色资源 | 青娱乐超碰在线 | 欧美一区二区三区免费视频 | 九九视频在线免费观看 | 天天草av | 福利视频一区二区 | 欧美一二三区在线观看 | 亚洲热在线观看 | 99精品久久精品一区二区 | 日韩美女视频 | 他趴在我两腿中间添得好爽在线看 | 日韩精品 欧美 | 人妻丰满熟妇av无码久久洗澡 | 日韩一区二区三区中文字幕 | 视色在线 | 一区二区三区视频免费视 | 亚洲欧美一区在线 | 久久免费看| 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 日皮在线观看 | 成年在线观看视频 | 激情丁香六月 | 乱子伦一区 | 91久久精品国产91久久性色tv | 波多野结衣办公室33分钟 | 黄色小视频在线播放 | 五月情网| 少妇色| 黄色aaa大片| 日韩片在线观看 | 婷婷九月 | 久久人人草 | 91精品人妻一区二区 | 日韩欧美精品中文字幕 | 亚洲欧美激情一区二区三区 | 亚洲成人aa | 无码人妻av免费一区二区三区 | 久久久久久久久久综合 | 国产女人18毛片 | 国产婷婷在线观看 | 国产在线操| 在线色网 | 黄色免费网页 | 日本免费高清一区二区 | 在线观看国产精品视频 | 日韩高清一级片 | 日韩av一级| 高清无码视频直接看 | 激情黄色小说视频 | 欧美日韩精品在线观看视频 | 成人毛片一区二区三区 | 国产色视频网站 | 亚洲欧美影院 | 男女午夜网站 | 男人天堂成人网 | 欧美精品高清 | 国产精品99久久久久久动医院 | 激情综合网五月天 | 夜夜春影院 | 青青草av在线播放 | 伊人久久超碰 | 视频免费在线观看 | 欧美精品四区 | 中文字幕第8页 | 国产字幕在线观看 | 无码少妇一区二区三区芒果 | 国产福利一区二区三区 | 国产小视频免费观看 | 欧美成人h | 一级做a免费视频 | 成人av免费网址 | 欧美成人精品一区二区免费看片 | 爱爱爱免费视频 | 亚洲一二区视频 | 国产精品久久久久久久毛片 | 日韩黄色一级视频 | 久久av综合网| 亚洲精品乱码久久久久久麻豆不卡 | 亚洲视频免费在线 | 一区二区三区视频免费视 | 青青草视频在线看 | 四季av一区二区夜夜嗨 | 色吧五月天| 精品日韩制服无码久久久久久 | 欧美日韩精选 | 亚洲七区 |