Python len()内置函数是遍历集合以计算其长度,还是访问集合';s属性?

Python len()内置函数是遍历集合以计算其长度,还是访问集合';s属性?,python,python-internals,Python,Python Internals,Python有很多,而len()就是其中之一 返回对象的长度(项目数)。参数可以是序列(如字符串、字节、元组、列表或范围)或集合(如字典、集合或冻结集合) 如果集合和序列是对象,则它们可以包含一个length属性,该属性可以在每次更改时更新。访问此属性将是检索集合长度的快速方法 另一种方法是遍历集合并动态计算项目数 len()如何计算所述长度?通过迭代还是属性访问?一种、无一种、两种、其他方法?Python内置集合将长度缓存在属性中。使用len() 将长度保留为属性既便宜又易于维护。鉴于Pyth

Python有很多,而
len()
就是其中之一

返回对象的长度(项目数)。参数可以是序列(如字符串、字节、元组、列表或范围)或集合(如字典、集合或冻结集合)

如果集合和序列是对象,则它们可以包含一个
length
属性,该属性可以在每次更改时更新。访问此属性将是检索集合长度的快速方法

另一种方法是遍历集合并动态计算项目数


len()
如何计算所述长度?通过迭代还是属性访问?一种、无一种、两种、其他方法?

Python内置集合将长度缓存在属性中。使用
len()

将长度保留为属性既便宜又易于维护。鉴于Python内置的集合类型被广泛使用,不这样做是不明智的


具有长度的Python内置类型通常构建在的顶部,其中包括一个
ob_size
条目。然后可以使用来实现(例如)。请参阅示例。

请参阅有时偶数,集合的长度与其迭代器的长度不同。例如,一个数据帧返回行数作为长度,而它的迭代器迭代列@卡迪:那么?您还可以迭代Pandas中的行,以及其他几个迭代来引导。这与指定长度有什么关系?@kadee(如果需要知道列数,请使用
len(dataframe.columns)
)。这意味着@Jamm建议的“遍历集合并计算项数”将产生与len()不同的结果。换句话说,
len(数据帧)!=len(list(dataframe.\uu iter\uu())