4

实现这一目标的最佳方法是什么?

http://en.wikipedia.org/wiki/Eastern_Arabic_numerals

4

2 回答 2

11

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'
于 2013-01-24T16:59:00.780 回答
2

像这样:

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

7773
于 2013-01-24T16:45:45.180 回答