len() 函数的特殊性¶
len() 函数式会调用对象的__len__。
如果是使用遍历的方式求其长度,那么效率会很低,但是在求 python 内置类型的长度时,比如 len(list)、len(dict)、len(set) 等,却会很快。
这是因为在 cpython 中的 list、dict、set 等,是通过 c 语言实现的, 在其内部会维护一个数据表示长度, 所以就不需要进行遍历,能大大提高效率, 所以尽量使用 python 原生的数据类型。
len() 函数式会调用对象的__len__。
如果是使用遍历的方式求其长度,那么效率会很低,但是在求 python 内置类型的长度时,比如 len(list)、len(dict)、len(set) 等,却会很快。
这是因为在 cpython 中的 list、dict、set 等,是通过 c 语言实现的, 在其内部会维护一个数据表示长度, 所以就不需要进行遍历,能大大提高效率, 所以尽量使用 python 原生的数据类型。