盘输入一组水果名称并以空格分隔,共—行。示例格式如下:
苹果芒果草莓芒果苹果草莓芒果香蕉芒果草莓
统计各类型的数量,从数量多到少的顺序输出类型及对应数量,以英文冒号分隔,每个类型一行。输出结果保存在考生文件夹下,命名为“PY.txt”。输出参考格式如下:
芒果:4草莓:3苹果:2香蕉:1代码模板//考生文件初始代码fo=open("PY.txt","w")txt=input("请输入类型序列:")……d={}……ls=list(d.items())ls.sort(key=lambdax:x[1],reverse=True)#按照数量排序forkinls:fo.write("{}:{}\n".format(k[0],k[1]))
fo.close()
编程思路:
第1步:将存储水果名称的字符串对象转换为列表对象
题目要求用户输入一组水果名称,每个水果名称以空格分隔,允许输入重复的水果名称。程序使用input函数接收用户输入的内容,input函数返回的是字符串,调用字符串对象的split函数按空格切分字符串,该函数返回字符串切分后的列表对象。
列表变量=字符串对象.split(“”)
第2步:统计水果名称的出现次数
结合题目内容,水果名称次数的统计数据存储在字典对象中,字典元素的key为水果名称,字典元素的value为水果在字符串中出现的次数。遍历存储水果名称的列表,调用字典对象的get(key,defaltvalue)返回指定key的value,若key或key的value不存在,则返回默认指定的key和defaltvalue。
for水果名称in水果名称列表:
字典对象[key]=字典对象.get(水果名称,0)+1
第3步:字典排序并写入文件
字典按照数量降序排序,字典对象并不支持排序,可以把字典对象转换为列表对象,使用字典对象的items()方法以列表方式返回字典对象的键值对。再调用列表对象的sort函数排序。
第4步:列表对象写入文件
使用内置open函数以w模式打开"PY.txt"文件,遍历列表对象,调用文件对象的write函数按照题目要求格式将数据写入文件。
完整代码
fo=open("PY.txt","w")
txt=input("请输入类型序列:")
fruits=txt.split("")
d={}
forfruitinfruits:
d[fruit]=d.get(fruit,0)+1
ls=list(d.items())
ls.sort(key=lambdax:x[1],reverse=True)#按照数量排序
forkinls:
fo.write("{}:{}\n".format(k[0],k[1]))
fo.close()