Python中如何统计字典内嵌套列表的元素数量
错误原因
你现有代码的问题出在两点:
- 判断逻辑写反了:你用
len(name)统计的是用户名的字符长度,实际要统计的是每个人对应语言列表的长度 - 第二个判断条件存在语法错误:
len(name > 1)的括号位置不对,且判断对象错误
修正后的实现代码
favourite_languages = { 'Joe': ['French'], 'Jim': ['Spanish', 'Portugese'], 'Alan':['German', 'Swedish'] } for name, langs in favourite_languages.items(): lang_num = len(langs) if lang_num == 1: # 单个语言直接取列表第一个元素,输出更美观 print(f"{name}'s favourite language is {langs[0]}") else: # 多个语言用逗号拼接成字符串,避免输出列表格式的方括号 print(f"{name}'s favourite languages are {', '.join(langs)}")
运行输出结果
Joe's favourite language is French Jim's favourite languages are Spanish, Portugese Alan's favourite languages are German, Swedish
如果你不需要格式化输出,直接保留列表的原始格式输出,把langs[0]和', '.join(langs)替换为langs即可。
内容的提问来源于stack exchange,提问作者Kai Ruth
相关产品推荐
相关产品推荐

