根据字典中的键检查列表

时间:2020-10-04 19:00:37

标签: python list dictionary for-loop comparison

这里是python的新手,这个问题似乎与这里提出的其他问题类似,但是在其他方面有所不同。

我想检查我创建的列表中的字符串是否出现在我创建的字典的键值中。我想使用一个for循环为与字典和列表匹配的值打印一条消息,为在列表中但不在字典中的值打印另一条消息。

例如

class_mates = ['Peter','Susan','Jen','Jeff','Niel','Sharon','Adam']

respondents = {
'jeff':'python'
'susan':'ruby'
'niel':'c'
'peter':'python'
}
  1. 我故意让受访者使用小写字母,因为理想情况下,答案中应该包括使用函数(可能是lower())使值不区分大小写的某种方式。

  2. 我想使用for循环,但愿意学习更好的方法。理想情况下,我的输出将是这样,

Thanks for taking the poll Peter.
Thanks for taking the poll Susan.
Hello, Jen. Please take our programming language poll.
Thanks for taking the poll Jeff.
etc.

我尝试过

for name, language in respondents.items():
    if name.lower() in respondents.keys() == name.lower() in class_mates:
      print("\nThanks for taking the poll",name.title())
    else:
        print("Hello,",name.title()+". Please take our programming language poll."

每当我运行此命令时,它只会为受访者的每场比赛打印else语句。 如果有人能启发我做错了什么, 并指出正确的方向,我将不胜感激。 谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我知道了。我试图迭代错误的可迭代对象,还试图检查class_mates中是否存在小写字母的名称,而这些名称总是会返回false。