Python字典操作方法--items()

d.items()返回字典中的所有键值对信息,返回结果是Python的一种内部数据类型dict_items。如果希望更好的使用返回结果,可以将其转换为列表类型,键值对以元组类型(即括号形式)表示。

>>> d = {"2018":"小明","2019":"小红","2020":"小白"}
>>> d.items()
dict_items([('2018', '小明'), ('2019', '小红'), ('2020', '小白')])
>>> type(d.items())
<class 'dict_items'>
>>> list(d.items())
[('2018', '小明'), ('2019', '小红'), ('2020', '小白')]
>>> 

补充此条的目的是为了解答我做一道二级题目时候的疑惑:

fi = open("小女孩.txt","r")
fo = open("小女孩频次排序.txt","w")
txt = fi.read()
d = {}
for word in txt:
    d[word] = d.get(word,0)+1
del d[" "]#不能有空格
del d["\n"]#不能有换行符
ls = list(d.items())
ls.sort(key = lambda x:x[1],reverse = True)
for i in range(len(ls)):
    ls[i] = "{}:{}".format(ls[i][0],ls[i][1])
fo.write(",".join(ls))
fi.close()
fo.close()

此处ls.sort()排序一行既然已经把列表降次排序了,为什么还要再写一个for循环把列表重写一遍呢?
当然是因为这两种情况下的ls长的不一样啦!
ls.sort()排序完之后的ls大概是长这样子滴:

[('小', 100), ('女', 99), ('孩', 98)]

而for循环重写ls之后的ls是长这样子滴:

['小':100, '女': 99, '孩': 98]

重写之后的ls看起来字符频次排序的意味更加强烈,也更符合题目要求。
总结:
d.items()或者list(d.items())返回的是以元组类型表示的键值对,
且键值之间用的是逗号而不是分号,
且键值之间用的是逗号而不是分号,
且键值之间用的是逗号而不是分号,
这就是为什么要把ls再用for循环重写一遍的原因。

  • 26
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值