字典序列类型的操作

使用{}生成的是一个空的字典,不是集合,要想生成集合需要使用函数set().

字典类型的函数和方法:d={}为例

  1. d.keys():返回所有的键信息
  2. d.values():返回所有的值信息
  3. d.items()返回所有的键值对
  4. d.get(key,default):键存在(key)则返回相应值,否则返回默认值
  5. d.pop(key,default):键存在则返回相应值,同时删除键值对,否则返回默认值default
  6. d.popitem():随机从字典中取出一个键值对,以元组(key,value)形式返回
  7. d.clear():删除所有的键值对
  8. del d[key]:删除字典中某一个键值对
  9. key in d:如果键在字典中则返回True,否则返回False

注意:字典对于统计元素的个数是一个非常好的解决方案,但有时需要按照某种需要排序,这就需要将字典转换为列表的形式,通过列表的内置函数sort()可以实现某种方式的排序。

字典中的get()方法—统计相同键所对应的值的个数

对于一个字典d{}
d[word]=d.get(word,num):如果字典中不存在word这个键,将会返回num作为键所对应的值,如果存在这个键,将会返回这个键所对应的值(value)。

附加:列表中的sort()函数

list.sort(d.items(),key=lambda x:x[1],reverse)
d.items()为待排序的对象,此处为字典中的键值对。
key=lambda x:x[i]:对前面对象的二维数组(value)进行排序
reverse:排序的方式,reverse=True时为降序,reverse=False时为升序(默认)

题目:

键盘输入一组水果名称并以空格分隔,共一行,统计各类型的数量,从数量多到少的顺序输出类型及对应数量,以英文冒号分隔,每个类型各一行。

输入

苹果 芒果 草莓 芒果 苹果 草莓 芒果 香蕉 芒果 草莓

输出

芒果:4
草莓:3
苹果:2
香蕉:1

代码实现

fo=open("PY202.txt","w")
txt=input("请输入类型序列:")
fruits=txt.split(" ")#对于分开的中文进行提取时,括号里需要有空格的标记,split()是提取函数,英文以默认的空格为提取前提
d={}#定义一个字典
for fruit in fruits:#得到键值对
   d[fruit]=d.get(fruit,0)+1#统计同种键所对应的值的个数
ls=list(d.items())#将字典转换为列表
ls.sort(key=lambda x:x[1],reverse=True)#按照数量的个数进行降序排序
for k in ls:
   fo.write("{}:{}\n".format(k[0],k[1]))
fo.close()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工程人永远在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值