循环浏览字典和列表



我是python新手,目前正在阅读Eric Matthes的python速成课程。在第六章中,我用一个苦读词艰难地读着:我们有一本朋友词典(a,b,c,..(和他们最喜欢的编程语言,我们应该检查列表中的朋友是否";朋友";有一种喜欢的语言(在字典里(,如果是,那么打印他们的名字和喜欢的语言,否则,问他们是什么。它是有效的,但是当我打印他们喜欢的语言时,它会打印整个值集,但我只想要分配给名称(键(的值。如果有人能解释一下怎么做就太好了,谢谢。

favorite_languages = {
'a': 'python',
'b': 'java',
'c': 'ruby',
'd': 'python',
}
friends = ['a','b', 'c', 'd', 'e', 'f']
for friend in friends:
print(friend)

if friend in favorite_languages.keys():
print(f"t{friend.title()}, Your favorite language is {favorite_languages.values()}!")
else:
print(f"t{friend.title()}, What is your favorite language")

favorite_languages.values()返回一个包含所有值的列表,因此['python', 'java', 'ruby', 'python']。但是,您需要在字典中查找该键的具体值。关键字为friend,因此可以在字典中查找关键字friend的值。顺便说一句,if子句在这里很重要,因为如果您使用方括号([](查找不存在的键,则会得到KeyError,因为该键没有值。

favorite_languages = { 'a': 'python', 'b': 'java', 'c': 'ruby', 'd': 'python', }
friends = ['a','b', 'c', 'd', 'e', 'f']
for friend in friends:
if friend in favorite_languages.keys():
print(f"t{friend.title()}, Your favorite language is {favorite_languages[friend]}!")
else:
print(f"t{friend.title()}, What is your favorite language")

使用循环for进行循环时,可以使用friend作为索引来获取favorite_languages中的正确值。我刚刚像一样更正了你的代码

favorite_languages = { 'a': 'python', 'b': 'java', 'c': 'ruby', 
'd': 
'python', }
friends = ['a','b', 'c', 'd', 'e', 'f'] 
for friend in friends:
if friend in favorite_languages.keys():
print(f"t{friend.title()}, Your favorite language is 
{favorite_languages[friend]}!")
else:
print(f"t{friend.title()}, What is your favorite language")

与其检查我们的friend是否在favorite_languageskeys()中(这在技术上是(,不如尝试使用.get()获取我们朋友的语言或None。

favorite_languages = {'a': 'python', 'b': 'java', 'c': 'ruby', 'd': 'python'}
friends = ['a','b', 'c', 'd', 'e', 'f']
for friend in friends:
## ------------------
## lookup our friend's language but if the key is not in the dictionary return None.
## ------------------
favorite_language = favorite_languages.get(friend)
## ------------------
if favorite_language:
print(f"t{ friend }, Your favorite language is { favorite_language }!")
else:
print(f"t{ friend }, What is your favorite language?")

这应该给我们:

a, Your favorite language is python!
b, Your favorite language is java!
c, Your favorite language is ruby!
d, Your favorite language is python!
e, What is your favorite language?
f, What is your favorite language?

最新更新