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:还处于起步的小菜鸡,若有错误,大佬们随时指正。。。。。嘻嘻)

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

  • 相关阅读:
    Streaming+Sparksql使用sql实时分析 rabbitmq+mongodb+hive
    几种指定链接库搜索路径
    配置ssh
    无交换机情况下的集群互联
    请找出至少一个由递推关系 a(i) = a(i – 1) + a(i – 2) 生成的数列,使得当 n 趋于 (√5+1)/2的数列
    hdu 4027 Can you answer these queries?
    hdu 4022 Bombing
    hdu 4034
    hiho 第七周 完全背包
    hiho 第六周 01背包
  • 原文地址:https://www.cnblogs.com/liangshian/p/11288181.html
Copyright © 2011-2022 走看看