Skip to main content
 首页 » 编程设计

python之找不到根据键翻译字符串的简单方法

2025年05月04日28jirigala

基本上我有一个函数可以非常简单地加密消息。

def encrypt(message): 
    alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 
    key = ["4","x","z","@","%","b","j","q","(","ƒ","¥","µ","˚","nå","ø","π","å","œ","¢","∞","∫","µ","≈","`","¬","…"] 
    new_message = "" 
    for x in range(0,len(message)): 
        new_message = message.replace(message[x],key.index[alphabet.index(message[x])]) 
    return new_message 
 
print(encrypt(input("What would you like to encrypt").lower())) 

这应该取字母并将其替换为列表键中具有相同索引的字符,但是我收到错误:

TypeError: 'builtin_function_or_method' object is not subscriptable 

请您参考如下方法:

最后是 str.translate 的用例!

def encrypt(message): 
    alphabet = 'abcdefghijklmnopqrstuvwxyz' 
    key = '4xz@%bjq(ƒ¥µ˚nåøπ圢∞∫µ≈`¬' 
    table = str.maketrans(alphabet, key) 
 
    return message.translate(table) 
 
print(encrypt('asdsaewqeq')) # 4œ@œ4%µπ%π 

请注意,您在 key 中的一个条目由两个字符组成。如果这是有意的并且您想用两个字符替换单个字符,那么您可以手动创建翻译表。

table = dict(zip(map(ord, alphabet), key))