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

admin2020-04-10  27

问题 考生文件夹下存在一个文件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.split(" ") d= {} for fruit in fruits: d[fruits]=d.get(fruit,0)+1 ls=list(d.items()) ls.sod(key=lambda x:x[1],reverse=True)#按照数量排序 flor k in 1s: 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()函数按照每个元组中序号为l的元素进行降存排列输出。
转载请注明原文地址:https://jikaoti.com/ti/sh50FFFM
0

最新回复(0)