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循环重写一遍的原因。

  • 25
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当使用字典的.items()方法进行循环时,它会返回字典中所有的键值对信息。返回的结果是一个dict_items对象,这是Python的一种内部数据类型。如果希望更好地使用返回的结果,可以将其转换为列表类型,其中键值对以元组形式表示(即用括号括起来)。例如,可以使用for循环对返回的结果进行遍历,并对每个键值对进行操作。例如,可以使用以下代码进行循环: d = {"2018":"小明","2019":"小红","2020":"小白"} for key, value in d.items(): # 在这里对键值对进行操作 在循环中,变量key将存储每个键,而变量value将存储对应的值。你可以根据自己的需求来对每个键值对进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python中for循环的用法items-python - 使用'for'循环迭代字典](https://blog.csdn.net/weixin_39675679/article/details/109619550)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python字典操作方法--items()](https://blog.csdn.net/gongkeguo/article/details/115200402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值