起因是让gpt编写换表脚本的时候,他给我用了这个方法
maketrans(改变前,改变后)
import base64
# 原表
origin = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
# 变表
base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/'
# 密文
c = 'tLntq1rgE1nTq18XC19Zmf9Lyxnzix0='
# 映射表
table = str.maketrans(base,origin)
# 明文
m = str(base64.b64decode(c.translate(table)),encoding=('utf-8'))
print(m)
再看几个案例吧
示例1:简单字符替换
将字符串中的元音字母替换为对应的大写字母。
# 创建映射表
trans_table = str.maketrans('aeiou', 'AEIOU')
# 原始字符串
text = "hello world"
# 使用映射表进行替换
result = text.translate(trans_table)
print(result) # 输出: hEllO wOrld
示例2:删除特定字符
通过将字符映射为None来删除字符串中的特定字符。
# 创建映射表,删除空格
trans_table = str.maketrans('', '', ' ')
# 原始字符串
text = "hello world"
# 使用映射表删除空格
result = text.translate(trans_table)
print(result) # 输出: helloworld
示例3:多对多字符替换
# 创建映射表
trans_table = str.maketrans('abc', '123')
# 原始字符串
text = "abcde"
# 使用映射表进行替换
result = text.translate(trans_table)
print(result) # 输出: 123de
示例4:结合字典进行替换
# 创建映射表
trans_table = str.maketrans({'a': '1', 'b': '2', 'c': '3'})
# 原始字符串
text = "abcde"
# 使用映射表进行替换
result = text.translate(trans_table)
print(result) # 输出: 123de