将列表与字典进行比较并根据结果打印消息

2024-06-16 09:24:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我能解释清楚。我有一本字典,里面有一系列的名字。我还有一个名单,上面还有一个名单。我想做的是把名单上的名字传给字典,如果名单上提到了一个名字,但字典里没有提到,我希望它打印一条信息,告诉这个人去做一个调查。到目前为止,我掌握的情况如下:

favorite_languages = {'Jen': 'python', 'Sarah': 'c', 'Edward': 'Ruby', 'Phil': 'python'}
poll_takers = ['Jen', 'Greg', 'Sarah', 'Allan', 'Bob']


for name, language in favorite_languages.items():
    print(name.title() + "'s favorite language is " + language.title() + ".")

    if name in favorite_languages:
        print('Thank you for taking the poll!')
    if name in poll_takers and not favorite_languages:
        print('Please take our poll!')

当我运行这个程序时,它会打印出“最喜爱的语言”列表中每个人的名字,并在每个人之后打印“谢谢”,但它不会从poll_takers列表中找到缺少的名字并打印正确的消息

我知道这很简单,但我试过两件事,但都做不到。有人知道我错过了什么吗


Tags: nameinfor字典title名字languagefavorite
3条回答

问题是,您只遍历最喜爱的\u语言中的项,因此第二个if语句的计算结果永远不会为True

相反,您可以使用set(),它只从常用\u语言中的键和poll \u takers中的值中获取唯一值:

最喜欢的语言={'Jen':'python','Sarah':'c','Edward':'Ruby','Phil':'python'} poll\u takers=['Jen'、'Greg'、'Sarah'、'Allan'、'Bob']

for name in set(favorite_languages + poll_takers):
    try:
       language = favorite_languages[name]
    except KeyError:
       # This means the name isn't in your favorite_languages dictionary
       print('Please take our poll!')
       return

    print(name.title() + "'s favorite language is " + language.title() + ".")

    print('Thank you for taking the poll!')

我可能会从投票人的角度来处理这个问题:

favorite_languages = {'Jen': 'python', 'Sarah': 'c', 'Edward': 'Ruby', 'Phil': 'python'}
poll_takers = ['Jen', 'Greg', 'Sarah', 'Allan', 'Bob']

for name in poll_takers:
    if name in favorite_languages.keys():
        print(name + "'s favorite language is " + favorite_languages[name] + ".")
        print("Thank you for taking the poll!")
    else:
        print(name + " does not have a favorite language.")
        print("Please take our poll!")

问题是:

for name, language in favorite_languages.items():

这只会迭代结果,即那些已经参加投票的名字。因此,您需要对还没有结果的poll_takers进行迭代

这里有一个提示:

>>> favorite_languages.keys() | poll_takers
{'Allan', 'Bob', 'Edward', 'Greg', 'Jen', 'Phil', 'Sarah'}

相关问题 更多 >