zoukankan      html  css  js  c++  java
  • python的enumerate lambda isinstance filter函数

    0x01:filter(function,iterable)

    1. filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    2. 接收两个参数,第一个为函数,第二个为序列(可迭代对象),序列的每个元素作为参数传递给函数进行判断,返回True或False,将返回True的元素放到新列表中。
    3. 返回值是filter类的一个对象,可以用list函数转化成列表

    eg:输出1-100内所有的完全平方数

    1 import math
    2 def is_sqr(x):
    3     return math.sqrt(x) % 1 == 0
    4 print(list(filter(is_sqr, range(1, 101))))

    输出结果如下:
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    0x02:enumerate(iterable, start)

    1. 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
    2. 返回一个enumerate类的对象
    3. 接受两个参数,第一个是数据对象,第二个是索引开始的位置
    1 s = ['a', 'b', 'c', 'c']
    2 print(type(enumerate(s)))
    3 for a, b in enumerate(s, start=9):
    4     print('下标{}'.format(a), end='    ')
    5     print('值{}'.format(b))

    输出结果如下:
    <class 'enumerate'>
    下标9    值a
    下标10    值b
    下标11    值c
    下标12    值c

    0x03:isinstance

    1. 判断一个对象是否为某一数据类型
    2. 判断子类是否继承与某个父类,isinstance会认为子类属于父类的类型,而type不会。
    3. 接受两个参数,第一个参数为数据对象,第二个参数为数据类型,或数据类型组成的元祖
     1 class A(object):
     2     pass
     3 class B(A):
     4     pass
     5 
     6 b = B()
     7 print(isinstance(b, A))  # 判断b是否属于父类A,isinstance返回True,type返回false
     8 print(type(b) == A)
     9 
    10 a = 3
    11 c = 6
    12 print(isinstance(a, int))  # 判断对象是否属于int类型
    13 print(isinstance(c, (str, list, tuple, int)))  # 判断对象是否属于远足中数据类型中的任一个

    输出结果如下:
    True
    False
    True
    True

    0x04:lambda

    1. 格式:lambda [parameter_list] : lambda后是参数,如果有多个参数,用 , 隔开, :后是返回值,一般是对出传入的参数的操作或判断
    2. 使用 lambda 表达式,可以定义简单的单行函数,省去定义函数的过程,不需要使用def关键字,让代码更加简洁。
    3. 对于不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高了性能。
    f = lambda x, y, z :x+y+z
    a = f(1,2,3)
    print(a)

    输出结果:
    6

    可以理解成使用lambda关键字定义了一个f对象,这个对象需要传入x y z三个参数,并把运算x+y+z后的结果返回给a

    (ps:还处于起步的小菜鸡,若有错误,大佬们随时指正。。。。。嘻嘻)

    *************************不积跬步,无以至千里。*************************

  • 相关阅读:
    June. 26th 2018, Week 26th. Tuesday
    June. 25th 2018, Week 26th. Monday
    June. 24th 2018, Week 26th. Sunday
    June. 23rd 2018, Week 25th. Saturday
    June. 22 2018, Week 25th. Friday
    June. 21 2018, Week 25th. Thursday
    June. 20 2018, Week 25th. Wednesday
    【2018.10.11 C与C++基础】C Preprocessor的功能及缺陷(草稿)
    June.19 2018, Week 25th Tuesday
    June 18. 2018, Week 25th. Monday
  • 原文地址:https://www.cnblogs.com/liangshian/p/11288181.html
Copyright © 2011-2022 走看看