Python获取字典指定key对应值数量,len()返回字符串长度如何解决
问题根因
你当前的字典结构设计有误,每个key对应的value是单个字符串类型的同义词,因此len(synonyms[word])实际统计的是同义词字符串的字符长度,不是同义词的数量。
你需要将每个key对应的value调整为列表类型,用来存储该单词对应的全部同义词。
修正后代码
synonyms = {} while True: command = input() if command == "add": first_word = input() second_word = input() # 给第一个单词新增同义词,不存在key则先初始化空列表 if first_word not in synonyms: synonyms[first_word] = [] # 避免重复添加相同同义词 if second_word not in synonyms[first_word]: synonyms[first_word].append(second_word) # 给第二个单词双向新增同义词 if second_word not in synonyms: synonyms[second_word] = [] if first_word not in synonyms[second_word]: synonyms[second_word].append(first_word) elif command == "count": word = input() # 直接统计列表长度就是同义词总数,key不存在时默认返回0 print(len(synonyms.get(word, [])))
效果验证
按以下顺序输入测试:
- 输入
add,依次输入happy、glad - 输入
add,依次输入happy、joyful - 输入
count,输入happy,输出结果为2,符合预期。
内容的提问来源于stack exchange,提问作者Muffin
相关产品推荐
相关产品推荐

