Python 3.6 字典。立即从输入中获取值

标签 python dictionary

几周以来我一直在学习 python 3.6 并且偶然发现了 tutorial 莫尔斯词典示例。

有这样一个字典:

morse = {
"A" : ".-", 
"B" : "-...", 
"C" : "-.-.", 
"D" : "-..",
...
...}

使用我的以下代码,可以输入一个字母并在标准输出中获取匹配的莫尔斯电码:

while 1:
    entry = input("letter: ")
    if entry in morse:
        result = morse[entry]
        print(result)

相同的行为:

while 1:
    entry = input("letter: ")
    for i in entry:
    print(morse[entry])

我想要的是输入完整的单词或句子,并在标准输出中为一行中输入的每个字母获取莫尔斯码

letter: ABC
.-,-...,-.-.

我认为以下可能可行(但它不......)。

 #result is new dic for the resulting key:values
  result = {}
  while 1:
      entry = input("letter: ")
      if entry in morse:
          result = morse[entry]
          print(result)
      else:
          for i in entry:
              i = entry.split()
              print(morse[i])

导致错误,不管我输入的是AB还是A B(.split()默认分隔符是\w ,我认为)

TypeError: unhashable type: 'list'

我也尝试过是否可以继续使用 dict.get() 或 dict.update()。 我认为必须有一个简单的方法来做到这一点,或者? ;) 目标是迭代输入吗?

感谢任何帮助

最佳答案

您不应该需要现有的 split 或 if 语句。检查这是否适合您:

while 1:
    entry = input("letters: ")
    for i in entry:
        if i in morse:
            print(morse[i])

如果你想要一个循环的所有字母都在同一行,你可以将它们附加到一个列表或将它们添加到一个空字符串,然后在循环结束时像这样打印:

while 1:
    result = ""
    entry = input("letters: ")
    for i in entry:
        if i in morse:
            result += morse[i]
    print(result)

关于Python 3.6 字典。立即从输入中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47520822/

相关文章:

python - 按日期对列表的 python 字典进行排序

python - 从大字典中弹出 N 项的最快方法

python - 方法作为字符串存储到运行的方法中

python - App Engine Dev Server 数据存储更新速度不够快?

python - 我应该在哪个文件中编写代码来调整 Django 上的图像文件大小?

python并行计算: split keyspace to give each node a range to work on

python - 将字典列表转换为数据框

python - 反转字符串的前半部分和后半部分并将它们一起返回

python - 从 Perl 调用 Node.js(或 python)

python - 使用组合键合并字典