Python中如何通过字典字符映射实现简易编码器功能
简易逐位映射编码器实现方案
首先修正你原有示例代码里的两个不规范写法:
- 不要用
dict作为自定义变量名,它是Python内置的字典类名,直接赋值会覆盖内置功能 - 不要用
in作为自定义变量名,它是Python的成员判断关键字,直接使用会触发语法报错
实现逻辑分3步即可:
- 将输入的整数转为字符串,就能逐位遍历拿到每一位的数字字符
- 把单个数字字符转回整数类型,从映射字典中取出对应的特殊字符
- 按遍历顺序把所有取出的字符拼接为最终结果字符串
可直接运行的完整代码如下:
# 数字-特殊字符映射表 char_map = { 1: "!", 2: "@" } input_num = 21 # 输入的待编码整数 out = ''.join(char_map[int(single_digit)] for single_digit in str(input_num)) print(out) # 运行输出:@!
如果后续扩展映射表、输入更长的整数,这套逻辑同样通用,只要保证输入数字的每一位都存在于映射表的键中即可,否则会抛出KeyError,需要容错的话可以在取值时增加缺省判断。
内容的提问来源于stack exchange,提问作者nbslay
相关产品推荐
相关产品推荐

