• 技术文章 >Python技术 >Python基础教程

    python中序列的属性实现

    小妮浅浅小妮浅浅2021-01-18 15:51:23原创2234

    在对一个事物进行了解的时候,我们会选择从它的属性入手,因为属性和其的用法有了密切的关联。可以说了解了事物的属性,我们基本上就差不多知道使用的方法了。今天小编为大家带来的是序列的属性,除了我们熟悉的和最小之外,还有和、长度需要我们掌握,下面一起看看序列属性的具体内容吧。

    序列值:max

    序列最小值:min

    序列的和: sum

    序列长度: len

    基本用法:向这四个函数中传入序列,可以得到对应属性。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    import random

    random.seed(21)

    seq = [random.randint(0, 100) for i in range(10)]

    print(seq)

    # [21, 53, 88, 53, 81, 36, 61, 27, 60, 65]

    print(max(seq))

    # 88

    print(min(seq))

    # 21

    print(sum(seq))

    # 545

    print(len(seq))

    # 10


    作为内置函数,可以直接传入生成器(不需要括号)作为参数:

    1

    2

    3

    4

    5

    import random

    random.seed(21)

    num = max(random.randint(0, 100) for i in range(10))

    print(num)

    # 88


    可传入 key 参数,作为比较大小的依据,相当于把序列中每一个元素 item 先传入函数 key 中,将函数返回的数值作为判断对象大小的依据。

    1

    2

    3

    4

    def foo(x):

       return 1. / x

    max(seq, key = foo)

    # 21


    对于我们自定义的类型,必须实现特殊方法,才能进行 len 等操作。

    len 代表:len 操作,eq 代表:= 操作,lt 代表 < 操作。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    class foo:

       def __init__(self, num, seq):

           self.num = num

           self.seq = seq

      

       def __len__(self):

           return len(self.seq)

      

       def __eq__(self, other):

           return self.num == other.num

      

       def __lt__(self, other):

           return self.num < other.num

      

    >>> f1 = foo(18, [1, 4, 6])

    >>> f2 = foo(21, [1, 7, 9, 10])

    >>> f1 < f2

    True

    >>> f1 > f2

    False

    >>> f1 == f2

    False

    >>> f3 = foo(18, [9, 9, 0, 7])

    >>> f1 == f3

    True

    >>> len(f1)

    3

    >>> len(f2)

    4


    今天的python序列属性有点像我们数学中的函数求值的理解,因为本篇的属性代码需要结合函数一起使用,所以会有相像的地方。具体的步骤都在上方,小伙伴们可以跟着小编的思路进行学习。

    专题推荐:python序列
    上一篇:python使用转义字符解决歧义 下一篇:python中分辨int和float的差别

    相关文章推荐

    • 一文了解Python序列化• Python序列化和反序列化• python序列列表怎么排序?• python序列解包是什么意思?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网