当我使用字典替换字符串中的值以解码消息时,如何将其放入以便函数不会将替换的值作为键读取并再次替换被替换的值?在
def decipher_message(translation_guide, message):
t = read_translation_guide_into_dictionary(translation_guide)
e = read_message(message)
print(t)
print(e)
for key, value in t.items():
f = e
e = f.replace(key, value)
return e
输出:
{'a': 'm', 'b': 'a', 'c': 'c', 'd': 'y', 'e': 't', 'f': 'v', 'g': 'o', 'h': 'u', 'i': 'x', 'j': 'e', 'k': 'j', 'l': 'w', 'm': 'f', 'n': 'z', 'o': 'd', 'p': 'l', 'q': 'i', 'r': 'k', 's': 'h', 't': 'n', 'u': 'g', 'v': 'b', 'w': 'q', 'x': 's', 'y': 'p', 'z': 'r'}
"qa mqtbppd vjqtu mghto! esbtr dgh mgz mqtoqtu aj gs rqto xezbtujz. q ahxe ejpp dgh, qex whqej vgzqtu sbfqtu bpp esj ljbpes qt esj lgzpo. qm dghzj pggrqtu mgz qe, q vhzqjo b aby eg qe bzghto lsjzj dghzj xebtoqtu tgl! zjajavjz esghus: ljbpes qxte jfjzdesqtu qt esj lgzpo!"
'"if finallp being fdgnd! nhank pdg fdr finding fe dh kind snranger. i fgsn nell pdg, ins qgine bdring habing all nhe qealnh in nhe qdrld. if pdgre lddking fdr in, i bgried a fap nd in ardgnd qhere pdgre snanding ndq! refefber nhdggh: qealnh isnn eberpnhing in nhe qdrld!"'
与其遍历字典并对整个字符串运行replace,不如遍历字符串并用dict中的值替换每个字符:
还请注意,Python有一个内置的string translate方法,它使用一个可以从dict生成的表:
^{pr2}$可以将
str.join
与以下生成器表达式一起使用,该表达式将迭代字符串以转换每个字符:相关问题 更多 >
编程相关推荐