字符串的這個東西-翻譯表

不知道大家是否見過這個東西,反正我清楚記得我是見過的,可是爲什麼會寫這個東西?有以下一個場景:

怎樣將一個字符串中的中文字符統一轉換成英文字符?

不知道大家會怎樣去做?先列舉一個例子:

'hello i'm jim'將其中的 'e' 轉換成 'i' , 'o' 轉換成 '!'

我的做法是:

s = 'hello i\'m jim'
ch = 'eo'
en_ch = 'i!'

for i, c in enumrate(s):
    if c in ch:
        s = s.replace(c, en_ch[ch.index(c)])

簡直就是so easy! , 可是... 這兩個字太可怕了,後端老大直接開噴,寫的啥玩意.難道還有什麼好方法?只能悄咪咪的看人家寫嘍

s = 'hello i\'m jim'
ch = 'eo'
en_ch = 'i!'
TRANS_TABLE = {ord(f): ord(t) for f, t in zip(ch, en_ch)}

s.translate(TRANS_TABLE)

呦吼!!!,這是什麼鬼?怎麼記得在哪裏看見過,趕緊百度,原來這是翻譯表,怎麼操作呢?

from string import maketrans
s = 'hello i\'m jim'
ch = 'eo'
en_ch = 'i!'

# python2.0+
# from string import maketrans
# TRANS_TABLE = maketrans(ch, en_ch)
# python3.0+
TRANS_TABLE = str.maketrans(ch, en_ch)

s.translate(TRANS_TABLE)

這樣就可以很方便的去處理字符串,而不是像我這樣小白只能循環,當然我也不是隻能想到循環,還有正則,哈哈哈,但是感覺這種更舒服.最後感嘆一句,還是後端老大NB.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章