gpt4 book ai didi

python - 使用词典翻译

转载 作者:太空狗 更新时间:2023-10-29 22:12:20 24 4
gpt4 key购买 nike

我只是在尝试工作簿中的一些代码,并且有不同的练习,但我想尝试一个带有预先存在的消息的练习,我已经做到了这一点,但我不知道如何完成它。我该怎么做呢?

alphabet = {"A": ".-","B": "-...","C": "-.-.",
"D": "-..","E": ".","F": "..-.",
"G": "--.", "H": "....","I": "..",
"J": ".---","K": "-.-", "L": ".-..",
"M": "--", "N": "-.", "O": "---",
"P": ".--.","Q": "--.-","R": ".-.",
"S": "...", "T": "-", "U": "..-",
"V": "...-","W": ".--", "X": "-..-",
"Y": "-.--", "Z": "--.."}

message = ".-- .... . .-. . / .- .-. . / -.-- --- ..-"

for key,val in alphabet.items():
if message in alphabet:
print(key)

最佳答案

这里的根本问题是您需要将消息拆分成可以单独解码的单独部分。

消息首先由斜杠(单词)分隔,然后由空格(字符)分隔。所以我们可以在这里使用两次split()来获取元素:

for word in message<b>.split('/')</b>:
for character in word<b>.strip().split()</b>:
# ... decode the character

现在我们需要一些东西来解码这个字符。但是存储一个以字符作为键的字典没有多大意义:我们想要解码消息,所以这里的点和连字符需要作为键,而不是字母字符。

我们可以自己建一个新字典,也可以自动建一个新字典:

decode_dict = {v: k for k, v in alphabet.items()}

那么我们可以使用查找方法:

decode_dict = {v: k for k, v in alphabet.items()}

for word in message<b>.split('/')</b>:
for character in word<b>.strip().split()</b>:
print(decode_dict[character]) # print the decoded character
print(' ') # print space after the word

现在我们获得了解码后的消息,但每个字符都在单独的一行中。然而,我们可以先使用 str.join 和生成器来生成字符串:

' '.join(''.join(decode_dict[character] for character in word.strip().split())
for word in message.split('/'))

结果就是解码后的字符串:

>>> ' '.join(''.join(decode_dict[character] for character in word.strip().split())
... for word in message.split('/'))
'WHERE ARE YOU'

关于python - 使用词典翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47498230/

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