gpt4 book ai didi

python - 如何使用 string.translate() 来翻译这个?

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:28 30 4
gpt4 key购买 nike

首先,我有这个:

strSrc = '3.14'

我希望结果是这样的:

strRst = '叁点壹肆'

P.s: 繁体中文中的数字“3”是“叁”。这里:

0零 1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖

我想使用string.translate()strSrc翻译成中文。

我检查了string.translate() doc,它说:

and then translate the characters using table, which must be a 256-character string

那么,这是否意味着我不应该使用string.translate()来解决这个问题?

<小时/>

但总是出现编码问题,如下所示:

>>> engToChn = string.maketrans('0123456789.', '零壹贰叁肆伍陆柒捌玖点')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: maketrans arguments must have same length
<小时/>

如果你尝试这个:

>>> engToChn = string.maketrans('0123456789.', u'零壹贰叁肆伍陆柒捌玖点')
or
>>> engToChn = string.maketrans(u'0123456789.', u'零壹贰叁肆伍陆柒捌玖点')

会出现这个问题:

Traceback (most recent call last)
File "<stdin>", line 1, in module
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-10: ordinal not in range(128)

最佳答案

问题是汉字(中文字符)不适合字符串。

尝试以下操作:

transtable = { ord("0"):u'零', ord("1"):u'壹', ....}
unicodestr = u"314"
print unicodestr.translate(transtable)

关于python - 如何使用 string.translate() 来翻译这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356573/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com