【问题标题】:Comparing user input list with dictionary and printing out corresponding value将用户输入列表与字典进行比较并打印出相应的值
【发布时间】:2018-12-06 01:19:02
【问题描述】:

一开始说这是为了学校,我还在学习,所以我不是在寻找直接的解决方案。

我想做的是接受用户的输入(一个词或多个)。 然后我把它列入一个清单。 我有我的字典,我发布的代码正在正确打印出这些值。 我的问题是如何将列表中的字符与字典中的键进行比较,然后只打印与键对应的值?

我还阅读了很多关于字典的不同问题,但根本没有帮助。

输出示例;

字:哇

输出:96669

user_word = input("Please enter a word: ")
user_listed = list(user_word)

def keypresses():
my_dict = {'.':1, ',':11, '?':111, '!':1111, ':':11111, 'a':2, 'b':22, 'c':222, 'd':3, 'e':33, 'f':333, 'g':4, 'h':44,
       'i':444, 'j':5, 'k':55, 'l':555, 'm':6, 'n':66, 'o':666, 'p':7, 'q':77, 'r':777, 's':7777, 't':8, 'u':88,
       'v':888, 'w':9, 'x':99, 'y':999, 'z':9999, ' ':0}

for key, value in my_dict.items():
    print(value)

【问题讨论】:

  • 输入my_dict['w'] 看看会发生什么。这就是您从字典中访问值的方式。这是否让你知道你需要做什么?
  • 不知何故将 w 替换为我列表的内容?

标签: python-3.x jupyter-notebook


【解决方案1】:

我不会把项目的代码交给你,但我一定会给你一个正确的方向;

所以,在我看来,这有 2 个部分;将每个字符匹配到一个键/获取一个值,然后组合数字以输出。

对于第一部分,您可以通过简单的 for 循环来逐个字符地迭代;

for letter in 'string':
    print(letter)

将输出s t r i n g。所以你可以用它来找到键的值(每个字母)

然后,您可以将定义作为字符串获取(以免在数学上添加每个数字),例如;

letter = 'w'
value = my_dict[letter]
value_as_string = str(value)

然后,将这一切组合到一个 for 循环中,并将每个字符串相互添加以创建所需的输出。

【讨论】:

  • 谢谢你,这实际上会帮助我完成其他有关字典的练习。你认为我需要把它全部放在一个函数中吗?一个函数让它看起来“更干净”是常见的做法吗?
  • 这取决于你!我不确定是否有关于何时使用函数和何时不使用函数的经验法则,但除非您非常担心速度,否则只有更容易创建和其他人在必要时阅读才重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 2019-03-24
  • 1970-01-01
相关资源
最近更新 更多