2013-01-24 152 views

回答

8

使用unicode.translate以序映射:

S.translate(table) -> unicode 

Return a copy of the string S, where all characters have been mapped 
through the given translation table, which must be a mapping of 
Unicode ordinals to Unicode ordinals, Unicode strings or None. 
Unmapped characters are left untouched. Characters mapped to None 
are deleted. 

實施例:

table = {1776: 48, # 0 
     1777: 49, # 1 
     1778: 50, # 2 
     1779: 51, # 3 
     1780: 52, # 4 
     1781: 53, # 5 
     1782: 54, # 6 
     1783: 55, # 7 
     1784: 56, # 8 
     1785: 57} # 9 


u'some ۰۱۲ of ۳۴۵ it ۶۷ is ۸۹ normal text'.translate(table) 

輸出:

u'some 012 of 345 it 67 is 89 normal text' 
2

像這樣:

eastern_to_western = {"٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9"} 
int(''.join([eastern_to_western[c] for c in '٧٧٧٣'])) 

7773