为何count_letters_v2函数未返回字母统计字典?如何修复?
问题分析与修复方案
嘿,我来帮你搞定这个问题~
为什么你看不到返回的字典?
其实你的count_letters_v2函数已经正确返回统计字典了!问题出在main函数的调用逻辑上:你只是调用了count_letters_v2(),但没有对它返回的结果做任何输出或保存操作,所以控制台只会打印函数内部的word和letter,而不会显示最终的统计字典。
怎么修复?
只需要在main函数里接收函数返回的字典,然后打印出来(或者根据需求做其他处理)就行,修改后的代码如下:
def count_letters_v2(word_list): count = {} for word in word_list: print(word) # 注意:Python3里print需要加括号,你的代码是Python2写法,建议修正 for letter in word: print(letter) if letter not in count: count[letter] = 1 else: count[letter] = count[letter] + 1 return count def main(): # 接收函数返回的统计字典 letter_stat = count_letters_v2(['a','short','list','of','words']) # 打印结果 print("\n最终字母统计结果:") print(letter_stat) if __name__ == '__main__': main()
额外小优化(可选)
你还可以用字典的get()方法简化计数逻辑,让代码更简洁:
count[letter] = count.get(letter, 0) + 1
这样就不用写if-else判断了,效果和原来完全一样。
内容的提问来源于stack exchange,提问作者Stuttgarter Hofbrau
相关产品推荐
相关产品推荐

