【问题标题】:Access a list inside a dictionary from input从输入访问字典内的列表
【发布时间】:2020-01-03 15:12:57
【问题描述】:

所以我正在尝试访问字典中的列表。 “键”来自输入,我的程序应该在 for 循环的帮助下搜索字典列表,以查看输入是否与键匹配,在这种情况下打印出列表(值)。但是,当我尝试使用下面的代码时。该程序给了我错误的信息(错误的名字和不正确的数量)

if val == 2:
  val2 = input("Enter a name: ")
  for value in likes:
      if val2 in likes[value]:
          print (val2 + " likes " + value)

这是字典

likes = {'Augusta':['Charmain','Billie','Mandy','Charlotte','Lesley'],'Charmain':['Augusta','Mandy'],'Billie':['Augusta','Charmain','Lesley',],'Mandy':['Charlotte','Billie','Augusta'],'Lesley':['Billie']}

for 循环总是给我相同的结果,但它是不正确的。

如果我这样输入,就会出现正确的列表。然而,由于程序依赖于输入,所以它不是替代品。

print(likes['Augusta'])

我该怎么办?

【问题讨论】:

  • val2 是字典内列表的键,我希望程序输入该值。不是关键。应该打印出来的信息是“val2”喜欢谁,列表由哪些人组成。奥古斯塔喜欢 Charmain、Billie 等。

标签: python list dictionary input


【解决方案1】:

最好(几乎是必须)为变量命名,以表明它们所代表的内容。您的解决方案非常简单:

inputName = input("Enter a name: ")
print(inputName + " likes " + ', '.join(likes[inputName]))

让我们试试吧:

Enter a name: Augusta
Augusta likes Charmain, Billie, Mandy, Charlotte, Lesley

【讨论】:

  • 程序不应该写谁喜欢inputName。它应该写出所有 inputName 喜欢的人。要回答的问题是:x 喜欢谁? - “输入一个名字”。对不起,如果我不够独特
  • 那么我的评论是对的,您确实在寻找print(likes[val2]),并且您希望程序输入而不是值。值是那些列表,您希望输入键,返回值。请查看我的编辑。
  • @hannasamuelsson 如果我的理解不正确,请随时进一步澄清。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
相关资源
最近更新 更多