首页 > 解决方案 > 如何使用字典替换文本中的字母?

问题描述

我有一本看起来像这样的字典:

Letters = {'a': 'z', 'b': 'q', 'm':'j'}

我也有一段随机文本。

如何将文本中的字母替换为字典中的字母。所以将“a”切换为“z”,将“b”切换为“q”。

到目前为止我所做的是返回错误的输出,我想不出任何其他方式:

splitter = text.split()
res = " ".join(Letters.get(i,i) for i  in text.split())
print(res)

标签: pythondictionarytext

解决方案


我们可以做的是遍历字符串中的每个字符,如果没有找到新字符,则添加新字符或原始字符。

text = "my text ba"
letters = {'a': 'z', 'b': 'q', 'm': 'j'}
result = ""

for letter in text: # For each letter in our string,
    result += letters.get(letter, letter) # Either get a new letter, or use the original letter if it is not found.

如果你愿意,你也可以用单线做到这一点!

text = "my text ba"
letters = {'a': 'z', 'b': 'q', 'm': 'j'}
result = "".join(letters.get(letter, letter) for letter in text)

这有点令人困惑,所以为了分解它for letter in text,我们get要么使用新的letter,要么使用(默认)原始的letter

您可以在此处查看该dict.get方法的文档。


推荐阅读