python - 如何使用字典替换文本中的字母?
问题描述
我有一本看起来像这样的字典:
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)
解决方案
我们可以做的是遍历字符串中的每个字符,如果没有找到新字符,则添加新字符或原始字符。
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
方法的文档。
推荐阅读
- ios - SwiftUI 键盘关闭问题
- kql - Kusto 中的列表理解等效项
- javascript - 如何在 web ar 中使用 nft 使内容(模型/视频)留在屏幕上?
- c# - 转发 multipart/x-mixed-replace 直播流 ASP.NET Core
- r - 将每个值与同一列中的其他值重复
- apache-spark - 为什么驱动程序核心在 YARN 上的 Spark 结构化流中显示为 0?
- python - 在 CI 中使用 pytest 测试 django sqlite3 数据库
- spring - 使用 Tomcat(无 Spring-Boot)和 PostgreSQL 在 Spring 中创建 findAll
- flutter - Flutter - BoxConstraints 强制无限宽度
- c - Google 单元测试是否与 IEC 62304 兼容?