菜农作业:Python_GitHub_L3_Question22
仅供记录自己在做题时候的一些思考。本题目可以不用字典来完成,只是为了练习字典的使用。
题目:
Question 22 Level 3 Question: Write a program to compute the frequency of the words from the input. The output should output after sorting the key alphanumerically. Suppose the following input is supplied to the program: New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3. Then, the output should be: 2:2 3.:1 3?:1 New:1 Python:5 Read:1 and:1 between:1 choosing:1 or:2 to:1 """
输入一段英文,计算每个单词或数字出现的次数。(这次有标点,但并没有加以区分,而是单独计数)
思路:
输入的字符串中会有多个重复的字符串,想要计数可以使用count函数。
这个题目更适合使用字典来解决,毕竟字典里的key不会重复,如果输入的内容重复了,就直接覆盖。
先将输入的字符串按照空格进行切分,该函数在前面的Q8中有类似的(Q8是按照逗号进行切分,将条件稍微更改即可)
切分代码如下:
def slipkg(string):
# 将一整串字符串按空格间隔拆分,
strlist = []
str2 = ""
for str1 in string:
if str1 != " ":
str2 += str1
else:
strlist.append(str2)
str2 = ""
strlist.append(str2)
return strlist
该段函数在GitHub第21题中使用,于是在22题中我直接引用了。
先建立一个空的字典。(这里可以仔细了解字典的具体用法,包括添加删除key和value,如何在空字典中添加key和value等,本题目主要用到了在空字典中添加key和value)
dict有很多内置函数,引用时与类中对象引用方法一致:dict.函数名(也许字典也就是某一类中的实例化对象呢?道行尚浅,不敢乱言)
遍历切分后得到的字符串,(相当于字典里的key),直接在循环里作为key产生,其对应的value就是列表中该字符串出现的次数。
代码如下:
# 计算输入字符串的重复次数,并输出
from Question21 import slipkg
dict = {}
str = input("输入一段英文,输出重复字符串数量:")
list = slipkg(str)
for item in list:
dict[item] = list.count(item)
print(dict)
这里输出的内容和题目中的不太一样,这里直接是一行,那我想输出竖着的怎么办呢?
好说,再来一个循环,将print放在循环里。
于是这样写:
for key, value in dict:
print(key, ":", value)
然后发现:
报错了。
为什么报错?value确实在字典里的呀?
或许把代码改成这样执行一下:
for key in dict:
print(key)
这样不会报错,并输出了key。
其实value是储存在key内部的,不同的key对应了不同的value。那么,问题:我可以依次用for循环输出key中对应的value吗?
我认为可以的:
for key in dict:
print(key, dict[key])
查看资料发现字典里有个函数叫item?
for key, value in dict.items():
print(key, ":", value)
这样我就可以把value也放在for循环语句中,总感觉没有第一个print简单粗暴易懂。
字典中的其他函数目前还没用做题遇到过,遇到了再用,用几遍之后才能记得更清楚,搜一搜大佬的资料,扒一扒文章的精化固然重要,但自己思考的过程、对每一个步骤出现bug而提出问题、解决问题的过程,更加重要。文章来源:https://www.toymoban.com/news/detail-415713.html
菜农加油!文章来源地址https://www.toymoban.com/news/detail-415713.html
到了这里,关于python输入一段英文,计算每个单词或数字出现的次数,并以字典方式输出。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!