Python翻译多个字符

标签 python string python-3.x translate

我正在尝试在 python 3.3.3 中创建一个程序,它将一个字符串然后将其转换为数字 (1-26)

我知道如何计算一位数但不知道 2 位

translist = str.maketrans("123456789", "ABCDEFGHI")

有没有办法做到这一点

最佳答案

你不能用 str.translate() 做你想做的事;仅适用于一对一的替换。您正试图在此处用两个不同的字符替换一个字符。

您可以改用正则表达式:

re.sub('[A-Z]', lambda m: str(ord(m.group()) - 64), inputstring)

这采用每个字母的 ASCII 代码点并减去 64(A 在 ASCII 标准中为 65)。

请注意,这可能会导致一些令人困惑的模棱两可的解释:

>>> import re
>>> inputstring = 'FOO BAR BAZ'
>>> re.sub('[A-Z]', lambda m: str(ord(m.group()) - 64), inputstring)
'61515 2118 2126'

第一组数字是 6 1 5 1 5 还是 6 15 15?您可能想要用 0 填充您的数字:

re.sub('[A-Z]', lambda m: format(ord(m.group()) - 64, '02d'), inputstring)

产生:

>>> re.sub('[A-Z]', lambda m: format(ord(m.group()) - 64, '02d'), inputstring)
'061515 020118 020126'

关于Python翻译多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25202007/

相关文章:

调用 `.info()` 时,带有列表元素的 Python Pandas Dataframe 报告错误类型?

python - Python 中的 3D 绘图 - 向散点图添加图例

python - 为什么程序中的列表会给出意外的输出?

python - 如何使用递归但不使用 for 或 while 循环来获得不重复的字符串排列?

python-3.x - Networkx - 导出带有边缘标签、高度和宽度属性、自定义图像的 graphml

python - 使用 np.ndarray 进行函数调用,例如 "TypeError: missing 1 required positional argument: "

python - 关于Q对象和外键的谜题

python - 如何将多个相同大小的 pandas 数据框合并到一个内聚数据库中?

java - 检查字符串是Java中的主机名还是IP地址

c - 带有字符串参数的 fprintf