- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这样一个函数:
persian_numbers = '۱۲۳۴۵۶۷۸۹۰'
english_numbers = '1234567890'
arabic_numbers = '١٢٣٤٥٦٧٨٩٠'
english_trans = string.maketrans(english_numbers, persian_numbers)
arabic_trans = string.maketrans(arabic_numbers, persian_numbers)
text.translate(english_trans)
text.translate(arabic_trans)
我希望它将所有阿拉伯语和英语数字翻译成波斯语。但是 Python 说:
english_translate = string.maketrans(english_numbers, persian_numbers)
ValueError: maketrans arguments must have same length
我尝试使用 Unicode utf-8
对字符串进行编码,但我总是遇到一些错误!有时问题是阿拉伯字符串!您知道这项工作的更好解决方案吗?
问题似乎是 ASCII 中的 Unicode 字符长度。像“1”这样的阿拉伯数字是两个字符——我用 ord()
找到了它。长度问题从这里开始:-(
最佳答案
请参阅将所有字符串转换为 UTF8 的 unidecode 库。这在输入不同语言的数字时非常有用。
在 Python 2 中:
>>> from unidecode import unidecode
>>> a = unidecode(u"۰۱۲۳۴۵۶۷۸۹")
>>> a
'0123456789'
>>> unidecode(a)
'0123456789'
在 Python 3 中:
>>> from unidecode import unidecode
>>> a = unidecode("۰۱۲۳۴۵۶۷۸۹")
>>> a
'0123456789'
>>> unidecode(a)
'0123456789'
关于python - String.maketrans 用于英语和波斯语数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879025/
我想用 ae 替换 æ 字符。我怎样才能获得它?这是我对 maketrans 和 translate 的尝试: word = 'være' letters = ('å','ø', 'æ') repla
我有这样一个函数: persian_numbers = '۱۲۳۴۵۶۷۸۹۰' english_numbers = '1234567890' arabic_numbers = '١٢٣٤٥٦٧٨٩
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。为了帮助澄清这个问题以便可以重新打开它,visit the help center
这是我的代码。不仅在此代码中,在我导入任何模块的每个代码中,ImportError: cannot import name 'package name' 都会出现 from string import
这是 Python 2.7 中的。string.maketrans 函数应该返回一个翻译映射,它是一个恰好有 256 个字符的字符串。 为什么我用 print 命令看不到这个字符串? allchars
尝试在 Python 3.5.2 shell 中运行命令时收到以下错误: Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC
string.maketrans("","") 给予 \x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x
我一直在做一些有关此错误的先前研究。这里有一些与StackOverflow相关的解释,但是建议的解决方案却完全无关。 当我尝试从gi.repository导入Gtk时,它崩溃并显示以下输出: bash
def complement(dna): transtable = dna.maketrans('acgtnACGTN', 'tgcanTGCAN') return dna.trans
我有一个很好的小方法可以从字符串中删除控制字符。不幸的是,它在 Python 2.6 中不起作用(仅在 Python 3.1 中)。它指出: mpa = str.maketrans(dict.from
我正在使用 petl 软件包,该软件包是我在 virtulaenv 中使用 pip 和 python 3.4 安装的。当我尝试测试 petl 包是否在 python shell 中正确安装时我这样做是
在此答案中: https://stackoverflow.com/a/3269756/3225934 Paul Rubel(然后是 wjandra)像这样交错输入文本: rot13 = string.
当参数为 unicode 时,Pypy 似乎无法处理 string.maketrans(),但 CPython 可以: $ python Python 2.7.5 (default, Oct 11 2
c++11 是否提供了在 python 中实现的优雅解决方案 maketrans/translate ? from string import maketrans intab = "aeiou" ou
使用 python 2.7 我得到这个错误: Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py",
运行 python proxy.py 时出现错误 $ python proxy.py INFO - [Sep 28 14:59:19] getting appids from goagent plus
这是完整的代码: s = 'life is short, stunt it!!?' from string import punctuation tbl = str.maketrans({ord(ch
我正在编写的代码应该找到 DNA 正向和反向互补链上基因序列的所有开放阅读框 (orfs)。为了制作 DNA 的反向链,我打算使用 str.maketrans() 将互补碱基映射到彼此。 #!/usr
我在 Google AppEngine (Python SDK) 中有这段代码: from string import maketrans intab = u"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØò
[ python 2] SUB = string.maketrans("0123456789","₀₁₂₃₄₅₆₇₈₉") 此代码产生错误: ValueError: maketrans argumen
我是一名优秀的程序员,十分优秀!