字典方法不再返回列表

时间:2010-03-24 16:01:44

标签: python-3.x

在python 2中,keys(),values()和items()返回列表。但是在Python 3中,它们是动态视图,并且要将这些动态视图作为列表,请使用list()函数进行转换。

好的,我明白了,但这是一个动态的观点呢?它用于什么?

当我谷歌动态视图时,我得到的只是网页框架工作类型的结果。与此无关。

由于

1 个答案:

答案 0 :(得分:1)

对于Python视图,请查看此处:http://docs.python.org/library/collections.html

集合的抽象基类包括视图。

动态视图是底层字典对象的迭代器。它也是与该对象的单向,不可更新的关系。

这个想法是,其他结构可以有更多类似于视图的东西。仅仅将其称为迭代器可以掩盖这样一个事实,即它在现有结构上进行迭代,并提供该结构的“视图”。原则上,有趣的附加功能是视图不可更新。

在关系数据库世界中,我们使用“view”来表示根据对一个或多个表的查询构建的类似表的结果集。它看起来像一个表(动态视图看起来像迭代器的方式)。但它不是表,因为它(通常)不能用于更新基础表。

[数据库专家会注意到有一些SQL视图可以容忍更新,但必须仔细设计才能允许这样做。在一般情况下,通过视图更新是不明智的。在某些数据库中甚至不可能。]