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

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

上一篇:enumerate() 函数的返回值


下一篇:在Python中结合枚举itertools.izip