Python作业求助:统计countries-data.py中语言总数的正确代码
统计国家数据中的语言总数解决方案
你之前代码的问题分析
- 第一段代码:判断键为
languages后,调用key.count('languages')是在统计字符串languages的子串出现次数,完全没有触及到实际的语言列表数据,自然无法得到语言总数。 - 第二段代码:
key == language逻辑错误,key是字典的键(如name、languages),language是整个国家字典对象,两者不可能相等,代码不会执行任何有效操作。
正确实现脚本
假设data/countries-data.py文件中定义了名为countries的列表,每个元素是包含languages键的字典(值为语言名称列表),以下是正确的统计代码:
from data.countries_data import countries # 用集合存储语言,自动去重 unique_languages = set() for country in countries: # 获取当前国家的语言列表,无该键时返回空列表避免报错 lang_list = country.get('languages', []) # 将所有语言添加到集合中 unique_languages.update(lang_list) # 输出去重后的语言总数 print(f"统计得到的语言总数:{len(unique_languages)}")
代码说明
- 使用集合
set的原因:不同国家可能共享同一种语言,集合会自动剔除重复项,确保统计的是不同语言的总数。 country.get('languages', []):兼容部分国家数据缺失languages键的情况,避免抛出KeyError。unique_languages.update(lang_list):直接将列表中的所有元素添加到集合,比逐个add更简洁高效。
内容的提问来源于stack exchange,提问作者Dennis08
相关产品推荐
相关产品推荐

