结合for循环和if语句与Python中的字典

问题描述:

我正在一个练习中,我应该有一个列表和字典,并打印出一个指定的消息,如果列表中的值不在字典中有人可以帮忙吗?出于某种原因,它只打印出else语句,但不打印if。我相信,我失去了一些东西结合for循环和if语句与Python中的字典

poll_takers = ['angel', 'jana', 'murad', 'adel', 'joe', 'jake'] 

favorite_language = { 
    'angel': 'python', 
    'jana': 'c++', 
    'murad': 'python', 
    'adel': 'swift', 
} 

for name in poll_takers: 
    if name == favorite_language: 
     print(name.title() + ", thank you for taking the poll.") 
    else: 
     print(name.title() + ", please take the poll.") 
+5

你觉得'name == favorite_language'是什么意思? – mkrieger1

+0

正如mkrieger的评论所指出的那样 - 你需要考虑为什么它只会碰到其他的东西 - 为什么名字是!= favourite_language?如果它有帮助,你可以打印出每个这些变量来做一些你自己的快速调试! –

+1

'=='测试*相等*。看看左边是什么,右边是什么。每种类型的*类型*是什么。打印出来,看看它究竟是什么比较。 – idjaw

你的条件应该是

if name in favorite_language 

,检查是否有键在字典中,否则

if name == favorite_language 

总是计算为false,因为字符串名称不等于字典,因为==测试相等,这就是为什么else语句不断被触发

+6

如果您要回答它,请正确回答。解释他们做错了什么。 – idjaw

+0

编辑了答案 –