将东阿拉伯数字转换为西阿拉伯数字
有什么好的方法可以做到这一点呢?
2 个回答
2
像这样:
eastern_to_western = {"٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9"}
int(''.join([eastern_to_western[c] for c in '٧٧٧٣']))
7773
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'