如何将字符串中的每个字符映射为对应的预设数值
实现方案
你定义的映射规则本质是26个小写英文字母按a到z的顺序,依次对应0到25的整数,无需手动编写全量映射表,通过字符编码偏移计算即可快速得到每个字符的对应值。
核心逻辑
小写字母在ASCII编码表中是连续排列的,任意小写字母对应的映射值 = 该字母的ASCII编码 - 小写字母a的ASCII编码。
代码实现
# 目标字符串 string = 'python' # 批量计算每个字符的映射值 mapped_values = [ord(char) - ord('a') for char in string] # 打印结果验证 print(tuple(string), '=', tuple(mapped_values))
运行上述代码会输出匹配规则的结果:
('p', 'y', 't', 'h', 'o', 'n') = (15, 24, 19, 7, 14, 13)
如果需要完全匹配你给出的无引号输出格式,可以用字符串格式化做简单调整:
char_part = ', '.join(string) value_part = ', '.join(str(v) for v in mapped_values) print(f"({char_part}) = ({value_part})")
输出结果:
(p, y, t, h, o, n) = (15, 24, 19, 7, 14, 13)
内容的提问来源于stack exchange,提问作者Superfudge
相关产品推荐
相关产品推荐

