1 # 可迭代的数据类型 和 迭代器 2 3 from collections import Iterator 4 from collections import Iterable 5 ‘‘‘可作用于 for 循环的对象都可迭代 6 可作用于 next() 函数的都是迭代器‘‘‘ 7 8 # 列表、字典、元组都可迭代,但都不是迭代器 9 print(‘列表、字典、元组、字符串可迭代吗?‘) 10 print(isinstance([], Iterable)) 11 print(isinstance({}, Iterable)) 12 print(isinstance((), Iterable)) 13 print(isinstance(‘abc‘, Iterable)) 14 # 生成器一定可迭代 15 print(‘生成器可迭代吗?‘) 16 print(isinstance((i for i in range(10)), Iterable)) 17 # 生成器还一定是迭代器 18 print(‘列表、元组、字典是迭代器吗?‘) 19 print(isinstance((), Iterator)) 20 print(isinstance([], Iterator)) 21 print(isinstance({}, Iterator)) 22 print(‘生成器一定是迭代器吗?‘) 23 print(isinstance((i for i in range(10)), Iterator)) 24 25 a = [1, 2, 3] 26 b = iter(a) # 将列表变成迭代器 27 print(b.__next__()) # 迭代器才能用 next 方法 28 print(next(b))
1 # 匿名函数 2 3 clac = lambda a: print(a) 4 clac(9) 5 6 clac1 = lambda a:4 if a<4 else a 7 print(clac1(1)) 8 9 # filter_筛选 10 res = filter(lambda n: n>5, range(10)) # range(10)是一个列表,filter将列表里大于5的数筛选出来 11 for i in res: 12 print(i) 13 14 # map_处理 15 res1 = map(lambda n: n*n, range(10)) # 将列表里的所有数进行处理 16 for i in res1: 17 print(i) 18 19 # reduce_ 20 import functools 21 res2 = functools.reduce(lambda x, y: x*y, range(1, 5)) 22 print(res2)