1. <em id="yud1w"><acronym id="yud1w"><u id="yud1w"></u></acronym></em>
      
      
      <button id="yud1w"></button>

      python

      当前位置:首页?>?python高级知识?>?当前文章

      python高级知识

      字典变化其dict.keys(),dict.values(),dict.items()也会变—字典view对象

      2021-01-17 88赞 python中国网
      每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

        在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

      文章评论

      字典变化其dict.keys(),dict.values(),dict.items()也会变—字典view对象文章写得不错,值得赞赏
      国产99视频精品免视看6