实现以下功能
键盘输入某个班级各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)。完善python代码,统计各行各业就业的学生数量,按数量从高到低方式输出。例如输入:
交通 金融 计算机 交通 计算机 计算机
输出参考格式如下,其中冒号为英文冒号:
计算机:3
交通:2
金融:1
names = input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):")
t = names.split() #str.split(sep=None):返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割。
d = {}
for c in range(len(t)):
d[t[c]]= d.get(t[c],0)+1 #d.get(k,<default>):键k存在,则返回相应值,不存在则返回 <default>值。在d字典中找t[c]即某一行业名称,没有的话给这个键的值赋0,有的话+1,完成行业计数操作。d是一个字典,d[键]会输出键对应的值。
ls = list(d.items()) #d是一个字典,键为行业名称,值为该行业出现的次数。<d>.items()返回所有的键值对,list()函数将返回值转换成列表
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序。sort方法中的lambda用来指定在列表中使用哪一列作为排序列。默认的排序方法是从小到大,若reverse=True,则返回的排序就是从大到小。这行代码的功能就是对一个列表按照键值对的2个元素的第2个元素进行排序。
for k in range(len(ls)):
zy,num = ls[k]
print("{}:{}".format(zy,num))