Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中将普通数字转换为阿拉伯数字_Python_Django - Fatal编程技术网

Python 如何在django中将普通数字转换为阿拉伯数字

Python 如何在django中将普通数字转换为阿拉伯数字,python,django,Python,Django,我有一个数字列表[1,2,3,…] 现在我想用django把它们转换成阿拉伯数字 可能吗?欢迎提出任何想法。尝试此功能: def enToArNumb(number): dic = { 0:'۰', 1:'١', 2:'٢', 3:'۳', 4:'۴', 5:'۵', 6:'۶', 7:'۷', 8:'۸',

我有一个数字列表[1,2,3,…]

现在我想用django把它们转换成阿拉伯数字

可能吗?欢迎提出任何想法。

尝试此功能:

def enToArNumb(number): 
    dic = { 
        0:'۰', 
        1:'١', 
        2:'٢', 
        3:'۳', 
        4:'۴', 
        5:'۵', 
        6:'۶', 
        7:'۷', 
        8:'۸', 
        9:'۹', 
        .:'۰', 
    }
    return dic.get(number)
然后像这样使用它:

ar_numbers = [enToArNumb(num) for num in numbers]
要将(unicode)数字字符串转换为等效的“阿拉伯-印度”数字,可以使用
unicode.translate()

这在Python2和Python3中应该可以工作

要从整数转换,请先将整数转换为unicode字符串,然后转换:

>>> for s in 1234567890, 33342353, 88192838743876487602873545683470:
...     s = unicode(s)    # Python 2 (s = str(s) for Python 3)
...     print('{!r} -> {!r}'.format(s, s.translate(arabic_indic_trans)))

这就是中东地区的翻译方式,因为哈桑的答案使用的数字与标准阿拉伯数字非常接近,但并不相同

def en_to_ar_num(数字字符串):
dic={
'0': '۰',
'1': '١',
'2': '٢',
'3': '۳',
'4': '٤',
'5': '۵',
'6': '٦',
'7': '۷',
'8': '۸',
'9': '۹',
}
返回“.join”([dic[char]表示数字字符串中的字符])
数字(124)

根据shakram02答案,如果有破折号或字符串,您可以将英文数字翻译成阿拉伯文数字:

def en_to_ar_num(number_string):
   lis=[]
   dic = {
          '0': '۰',
          '1': '١',
          '2': '٢',
          '3': '۳',
          '4': '٤',
          '5': '۵',
          '6': '٦',
          '7': '۷',
          '8': '۸',
          '9': '۹',
   }

   for char in number_string:
          if char in dic:
                 lis.append(dic[char])
          else:
                 lis.append(char)
   return "".join(lis)
打印:

print(en_to_ar_num("124-25-abc"))
输出:

转换成什么?使用where?您给出的数字列表已经是阿拉伯数字了。您想要数字的字符串表示吗?此列表具有普通数字。但在阿拉伯语中,它们有不同的数字,如‘٠’、‘١’、‘٣’、‘٤’、‘٥’、‘٧’、‘٩’
print(en_to_ar_num("124-25-abc"))