考生文件夹下存在一个文件“PY202.py”,该文件是本题目的代码提示框架,其中代码可以任意修改。 请在该文件中编写代码,以实现如下功能。 用键盘输入一组水果名称并以空格分隔,共一行,示例格式如下。 苹果芒果草莓芒果苹果草莓芒果香蕉芒果草莓 统计水果类型的

admin2021-03-16  39

问题 考生文件夹下存在一个文件“PY202.py”,该文件是本题目的代码提示框架,其中代码可以任意修改。
请在该文件中编写代码,以实现如下功能。
用键盘输入一组水果名称并以空格分隔,共一行,示例格式如下。
苹果芒果草莓芒果苹果草莓芒果香蕉芒果草莓
统计水果类型的数量,从数量多到少的顺序输出水果类型及对应数量,以英文冒号分隔,每个水果类型一行。输出结果保存在考生文件夹下,命名为“PY202.txt”。输出的参考格式如下。
芒果:4
草莓:3
苹果:2
香蕉:1
试题程序:
#以下代码为提示框架
#请在…处使用一行或多行代码替换
#注意:提示框架的代码可以任意修改,以完成程序功能为准
txt=input("请输入类型序列:")
fo=open("PY202.txt","w")

d={}

ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse==True)#按照数量排序
for k in ls:
    fo.write(" {}:{}".format(k[0],k[1]))
fo.close()

选项

答案txt=input("请输入类型序列:") fo=open("PY202.txt","w") fruits=txt.spit(" ") d={} for fruit in fruits: d{fruit}=d.get(fruit,0)+1 1s=list(d.items()) ls.sort(key=lambda x:x[1],reverse=True)#按照数量排序 for k in ls: fo.write("{}:{}".format(k[0],k[1])) fo.close()

解析 “统计元素个数”问题非常适合采用字典类型来解决,即构成“元素:次数”的键值对。因此可以把输入的数据,构造成一个字典进行存储。
创建字典变量d,可以利用“d[键]=值”方式为字典增加新的键值对变量。下面是最常用的对元素进行统计的语句:d[fruit]=d.get(fruit,0)+1
其作用就是增加元素fruit出现的次数。get()方法获得字典中fruit作为键对应的值,即fruit出现的次数。如果fruit不存在,则返回0;存在,则返回对应的值。
由于题目要求按照数量的多少进行排序输出,因此需要把字典类型转换为列表类型,使用字典的items()函数返回包含所有键值对的项,使用list()函数把取出的内容重新构造成一个列表。列表中的每个元素都是一个键值对形式的元组。最后,使用sort()方法把每个元组中索引为1的元素进行降序排列并输出。
转载请注明原文地址:https://jikaoti.com/ti/A950FFFM
0

最新回复(0)