您的位置: 网站首页> 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。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    字典变化其dict.keys(),dict.values(),dict.items()也会变—字典view对象文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200