您的位置: 网站首页> python进阶> 当前文章
字典变化其dict.keys(),dict.values(),dict.items()也会变—字典view对象
老董-我爱我家房产SEO2021-01-17177围观,144赞
在Python3中dict.keys()、dict.values()、dict.items()返回的不是列表而是视图对象Dictionary view objects。下面我们看下官方文档的解释:
The objects returned by dict.keys(),dict.values() and dict.items() are view objects. They provide a dynamic view on the dictionary’s entries, which means that when the dictionary changes, the view reflects these changes.
文档的意思是字典变化那么这个视图对象也会发生变化,下面用代码来说明:
# -*- coding: utf-8 -*- d1 = {'name': '马云', 'nickname': '首富', 'age': 55} view_obj = d1.items() print(view_obj) d1['address'] = '杭州' print(d1) print(view_obj) # 同样发生了变化
dict_items([('name', '马云'), ('nickname', '首富'), ('age', 55)]) {'name': '马云', 'nickname': '首富', 'age': 55, 'address': '杭州'} dict_items([('name', '马云'), ('nickname', '首富'), ('age', 55), ('address', '杭州')])
字典的视图对象不支持直接索引,但是支持迭代。对dict视图对象进行迭代相比列表迭代效率更高,因为构建列表需要花费时间和内存。 dict视图对象提供了一个迭代器,该迭代器直接遍历字典的基础存储跳过了不必要的列表步骤(旧方法是Python遍历dict的基础存储以构建新列表,然后遍历该列表)。
参考文档:https://docs.python.org/3/library/stdtypes.html#dictionary-view-objects
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
字典变化其dict.keys(),dict.values(),dict.items()也会变—字典view对象文章写得不错,值得赞赏
站点信息
- 网站程序:Laravel
- 客服微信:a772483200