gpt4 book ai didi

python - 字符串编码器 - Python

转载 作者:太空宇宙 更新时间:2023-11-04 03:15:37 26 4
gpt4 key购买 nike

我一直在尝试使用字典对随机字符串集进行编码。我已经得到我的代码来替换我想要的字母,但在某些情况下,当我真的只希望它替换字符串中的字母一次时,它会多次替换一个字符。这是我的:

def encode(msg,code):
for i in msg:
for i in code:
msg = msg.replace(i, code[i])
return msg

出于测试目的,我使用了函数调用:初始:

encode("blagh", {"a":"e","h":"r"})

和一个更复杂的字符串:

encode("once upon a time",{'a':'ae','e':'ei','i':'io','o':'ou','u':'ua'})

对于上面的第二个,我正在寻找的输出:'ouncei uapoun ae tiomei'

但我发现自己:

“ounceio uapoun aeio tiomeio”

如何限制我的循环只替换每个字符一次?

最佳答案

Python 3 的 str.translate功能做你想要的。请注意,翻译字典必须使用 Unicode 序号作为键,因此该函数使用字典理解将其转换为正确的格式:

def encode(msg,code):
code = {ord(k):v for k,v in code.items()}
return msg.translate(code)

print(encode("blagh", {"a":"e","h":"r"}))
print(encode("once upon a time",{'a':'ae','e':'ei','i':'io','o':'ou','u':'ua'}))

输出:

blegr
ouncei uapoun ae tiomei

如果您使用 Unicode 字符串或将以下内容添加到文件顶部以使字符串默认为 Unicode,它也适用于 Python 2:

from __future__ import unicode_literals

关于python - 字符串编码器 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com