开始学习python啦,按照课程的要求做了老师发出来的一道题,慢慢思考慢慢写出来的,对字典,列表的理解更深刻了一些,题目:键盘输入某班各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)代码

#统计从事某行业的人数

#键盘输入某班各个同学就业的行业名称,行业名称之间用空格间隔(回车结束输入)。

# 完善Python代码,统计各行业就业的学生数量,按数量从高到低方式输出。

# 测试输入输入:

# 交通 金融 计算机 交通 计算机 计算机输出参考格式如下,其中冒号为英文冒号:

# 计算机:3

# 交通:2

# 金融:1

names=input()

print(type(names))

print(names)

names=names.split(" ")     #识别空格来把输入的字符串切片成几个元素

print(type(names))

print(names)

counts={}            #字典创建用花括号,如果是counts=[]则会报错

for name in names:      #判断元素是否存在于列表names中

    counts[name]=counts.get(name,0)+1  #通过get()识别键名并且因为之前没有遇到过,所以就会赋值为0,后面再遇到的时候不会再被赋值为0

                            #每判断出一个在列表中的元素,该键名对应的项目值value就加1            

items=list(counts.items())      #items()遍历键和值,并把字典转换成列表类型用于后续操作

items.sort(key=lambda x:x[1],reverse=True)   #lambda x:x[1]是匿名函数,返回x元素的第二个字段,作为排序的依据,reverse=True代表降序排列

for i in range(len(items)):#把排好序的列表遍历

    name,count=items[i]    #把列表中的键名和值传给name和count

    print("{}:{}".format(name,count))#按照需要的格式输出

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值