本篇利用前面结束的字典方法来完成一个小功能,就是统计一个字符串每个字符的个数。这将涉及到之前没有讲过的一些知识,比如函数等。
Python中什么数据结构可以很好地用来解决这个问题呢?我想字典再合适不过了,我们可以把字符串中的每个字符当作字典的键,然后字符出现的次数为值。
还有一个问题是我们要有一个函数来获取字符串,并把它赋给一个变量。
前面我们学到字典的setdefault方法,该方法的其中一个用法就是当同时提供键参数和可选参数的时候,如果原来字典中不存在键,则会在字典中增加新的键值对。
利用这个特点,我们可以轻松的解决这个问题。
>>> def count_word(): #定义个函数,该函数不接收任何参数
word = input("请输入一个字符串:") # 利用input内置函数来获取字符串
count_dict = {} #声明一个空字典
for w in word: #利用for循环遍历一个字符串,此处的word为input函数返回的结果
if w in count_dict: #先利用if语句判断是否存在该键,如果存在就让该值加1
count_dict[w] += 1
count_dict.setdefault(w, 1) #如果不存在该键,就增加该键,并且值设置为1
return count_dict #函数返回一个字典
>>>
>>> count_word() # 运行该函数来测试其功能是否满足要求
请输入一个字符串:hello python
{'h': 2, 'o': 2, 'e': 1, 'p': 1, 't': 1, 'y': 1, 'n': 1, 'l': 2, ' ': 1}
>>> count_word()
请输入一个字符串:i love python
{'h': 1, 'p': 1, 'o': 2, 'e': 1, 'v': 1, 'y': 1, 't': 1, 'i': 1, 'n': 1, 'l': 1, ' ': 2}
>>> count_word()
请输入一个字符串:hello
{'h': 1, 'o': 1, 'e': 1, 'l': 2}
以上定义的函数完美的解决字符串字符统计计数的问题。
上述函数也可以轻松地改造成统计各种不同种类东西的计数,比如水果不同品种下的计数等。