我有一本看起來像這樣的字典:
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)
uj5u.com熱心網友回復:
translation_table = str.maketrans({'a': 'z', 'b': 'q', 'm':'j'})
translated = your_text.translate(translation_table)
這個簡潔快速
uj5u.com熱心網友回復:
您正在迭代 中的單詞text,而不是單詞中的字母。
沒有必要使用text.split(). 只需遍歷text自身即可獲取字母。然后使用空字串加入它們。
res = "".join(Letters.get(i,i) for i in text)
uj5u.com熱心網友回復:
我們可以做的是遍歷字串中的每個字符,如果找不到新字符,則添加新字符或原始字符。
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方法的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/317937.html
