python - 当语言只包含一种语言时,我无法得到正确的答案以打印出来:“莎拉最喜欢的语言是:C”
问题描述
favorite_languages = {
"jen": ["python", "ruby"],
"sarah": "c",
"edward": ["ruby", "go"],
"phil": ["python", "haskell"],
}
for names, languages in favorite_languages.items():
if len(languages) > 1:
print(f"\n{names.title()}'s favorite languages are:")
for language in languages:
print(f"\t{language.title()}")
else:
print(f"\n{names.title()}'s favorite language is: {language.title()} ")
解决方案
您的代码需要两个简单的修复:
favorite_languages = {
"jen": ["python", "ruby"],
"sarah": ["c"],
"edward": ["ruby", "go"],
"phil": ["python", "haskell"],
}
for names, languages in favorite_languages.items():
if len(languages) > 1:
print(f"\n{names.title()}'s favorite languages are:")
for language in languages:
print(f"\t{language.title()}")
else:
print(f"\n{names.title()}'s favorite language is: {languages[0].title()} ")
请注意,Sarah 现在喜欢包含一种语言 ( ["c"]
) 的列表,如果她喜欢名称较长的语言,例如["haskell"]
.
由于只有一个 print 语句,它会打印第一个语言languages
with {languages[0].title()}
。
推荐阅读
- wordpress - 是否可以将分类术语用作类别?
- amazon-cloudformation - 如何在 AWS 无服务器函数中设置 Oauth 范围?
- python - AWS Sagemaker 多项训练作业
- filepond - 在 ondata 事件中获取文件路径
- python - Visual Studio Code Python 中的 Pylint 错误
- linux - 如何根据 linux 中的条件(使用 awk 或任何其他)从另一个 csv 文件替换一个 csv 文件的行?
- php - 将数据从三个表单发送到控制器
- encryption - 从未加密的 Redshift 集群迁移到加密的集群
- ruby - 无法使用 DynamoDB GSI
- vb.net - Vb.net 使用 OdbcConnection 登录