【问题标题】:How can I iterate through 3 dictionaries for a translator?如何为翻译者遍历 3 个字典?
【发布时间】:2019-09-08 17:31:24
【问题描述】:

我正在开发一个翻译器(英语到盲文)作为 python 2.7 中的一个类的项目。我们基本上被扔给了狼,我以前从未有过编码经验。我到底应该如何创建一个函数来遍历一本字典并吐出每个英文字母的值(只有一本字典,所以我得到了大致的想法)?

对于盲文字母所需的每一行,我都有一个舒适的 3 个字典,老实说,我不知道从哪里开始功能。我得到了一个询问单词的提示,但是我知道如何让 python 查看单词中的单个字母并将这些字母引用到字典中。

eng_to_braille_1 = {
  'a': '. ', 'b': '. ', 'c': '..', 'd': '..', 'e': '. ', 'f': '..', 'g': '..', 'h': '. ', 'i': ' .', 'j': ' .', 'k': '. ', 'l': '. ', 'm': '..', 'n': '..', 'o': '. ', 'p': '..', 'q': '..', 'r': '. ', 's': ' .','t': ' .', 'u': '. ', 'v': '. ', 'x': '..', 'y': '..', 'z': '. '
}

eng_to_braille_2 = {
  'a': '  ', 'b': '. ', 'c': '  ', 'd': ' .', 'e': ' .', 'f': '. ', 'g': '..', 'h': '..', 'i': '. ', 'j': '..', 'k': '  ', 'l': '. ', 'm': '  ', 'n': ' .', 'o': ' .', 'p': '. ', 'q': '..', 'r': '..', 's': '. ','t': '..', 'u': '  ', 'v': '. ', 'x': '  ', 'y': ' .', 'z': ' .'
}

eng_to_braille_3 = {
  'a': '  ', 'b': '  ', 'c': '  ', 'd': '  ', 'e': '  ', 'f': '  ', 'g': '  ', 'h': '  ', 'i': '  ', 'j': '  ', 'k': '. ', 'l': '. ', 'm': '. ', 'n': '. ', 'o': '. ', 'p': '. ', 'q': '. ', 'r': '. ', 's': '. ','t': '. ', 'u': '..', 'v': '..', 'x': '..', 'y': '..', 'z': '..'
}

word = input("Type a word to be translated: ")
word = str()

def translate(word):
   translation = ""

【问题讨论】:

  • 为什么会有三个字典?盲文是否根据某些标准对同一个字母有不同的表示?
  • 允许从这 3 个字典创建一个字典吗?顺便说一句,您不需要迭代。字典是键值存储。您可以通过键访问它们中的每一个。
  • @AddoExitium 不是每个人都知道盲文是如何工作的。此外,您将每个字母的翻译分散在三个不同的数据结构中,这很奇怪,因为我希望您想要一个字母的整个翻译,而不是它的特定行。此外,如果您遇到查看单词中单个字母的问题,那么此时与字典和盲文有关的一切都与您无关。你最好一个一个解决你的问题。
  • 如果您的课程材料不包括基本知识的解释,例如查看单词中的单个字母,并且没有指向您可以用来自学的资源,那么您应该退出该课程如果可以,但如果这不是一个选项,您可以阅读official tutorial 或其他resources for beginners。在来这里提问之前,您应该了解该语言的基础知识。

标签: python python-2.7 braille


【解决方案1】:

你可以这样定义内部函数:

for translator in [eng_to_braille_1, eng_to_braille_2, eng_to_braille_3]:
    for i in word:
        print(translator[i], end=' ')
    print('\n')

将打印顶行、中间和底行。但这不能用于长字符串输入。为此,您最好找到盲文的 unicode。

【讨论】:

  • 但是你能解释一下各个行吗?阅读代码并理解它的含义还不是我真正的技能
  • 迭代word中的所有字符;对于顶行(eng_to_braille1)并打印顶行。然后转到下一行并迭代中间行。然后移动下一行并遍历底行。
【解决方案2】:

Python 字典是键值存储。因此,如果您想在 eng_to_braille_1 中找到“a”的盲文值,请执行以下操作:

print(eng_to_braille_1['a'])

对于一个单词,您必须遍历单词中的每个字母并找到其等效的盲文值。

for c in word:
    print(eng_to_braille_1[c])

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 2015-11-14
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 2022-11-30
    • 2018-01-01
    相关资源
    最近更新 更多