Python len函数:获取对象的项目个数

48 篇文章 46 订阅

目录

描述

语法

使用示例

序列型对象

非序列型对象

实现原理


描述

len函数返回参数对象(例如字符或字符串、元组、列表和字典等)的项目个数(长度)。

语法

函数返回一个自然数,表示对象的项目个数。

len(object)
名称说明备注
object序列类型对象不可省略的参数

使用示例

序列型对象

len函数返回序列型对象中包含的元素个数:

序列型对象名称描述
列表 list返回列表长度,即列表中包含的元素个数
集合 set返回集合长度,即集合中包含的元素个数
元组 tuple返回元组长度,即元组中包含的元素个数
字典 dict返回字典中存在键的数量
字符串 string返回字符串中存在的字符数
其他返回可迭代对象中包含的元素数,例如range对象类型
if __name__ == '__main__':
    demo_list = [1, 2, 5, 8]
    print(len(demo_list))
    # output: 4

    demo_set = {"A", "b", "C"}
    print(len(demo_set))
    # output: 3

    demo_tuple = "Beijing", "Hangzhou", "Xi'an"
    print(len(demo_tuple))
    # output: 3

    demo_dict = {
        "Washington, D.C.": "US",
        "Beijing": "China",
        "Tokyo": "Japan",
    }
    print(len(demo_dict))
    # output: 3

    demo_str = "TTimeCat"
    print(len(demo_str))
    # output: 8

    demo_iter = range(0, 10)
    print(len(demo_iter))
    # output: 10

非序列型对象

当参数是非序列型对象时,调用len函数会抛出TypeError异常:

if __name__ == '__main__':
    len(3.24)
    # TypeError: object of type 'float' has no len()

实现原理

len函数其实调用的是对象的__len__方法。因此我们可以通过重写__len__方法来实现len函数。

例如下面的代码定义了一个Demo类。Demo类中重写了它父类的__len__方法,并返回整数6。因此使用Demo类的实例作为len函数的参数,其结果永远为6:

class Demo(object):
    def __len__(self):
        return 6


if __name__ == '__main__':
    demo = Demo()
    print(len(demo))
    # output: 6

在实际应用中,对于构建复杂的类,可以通过重写__len__方法来将类内部的数据结构属性通过len函数的调用返回。

  • 22
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值