1、推导式
推导式与匿名函数类似,都可以简化编程语言。
1.1 列表推导式
使用[]生成list
例:
# 整除3的数字列表 numbers1 = [] for x in range(10): if x % 3 == 0: numbers1.append(x) print(numbers1) # 使用推导实现 numbers = [x for x in range(10) if x % 3 == 0] #同样可以实现上述函数的功能 print(numbers)输出结果:
[0, 3, 6, 9] [0, 3, 6, 9]使用()生成generator
将列表推导式中的[]换成()就可以得到生成器
例:
multiples = (i for i in range(30) if i % 3 is 0) print(type(multiples))输出结果:
<class 'generator'>1.2 字典推导式
与列表推导式类似,以{}形式编写。
例:
mcase = {'a': 10, 'b': 34} mcase_frequency = {v: k for k, v in mcase.items()} print(mcase_frequency)输出结果:
{10: 'a', 34: 'b'}1.3 集合推导式
与字典推导式一样,都是用{},但是集合推导式不使用键值对形式。
例:
squared = {x**2 for x in [1, 1, 2]} print(squared)输出结果:
{1, 4}2、迭代器
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
iter用来创建迭代器对象,next则是调用输出迭代器的下一个元素。
例:
list=[1,2,3,4] it = iter(list) # 创建迭代器对象 print (next(it)) # 输出迭代器的下一个元素 print (next(it))输出结果:
1 2迭代器对象可以使用常规for语句进行遍历:
list=[1,2,3,4] it = iter(list) # 创建迭代器对象 for x in it: print (x, end=" ")输出结果:
1 2 3 43、生成器
在python中使用yield代替return的函数被称为生成器。
例:
def test(): for i in range(5): print('begin---') yield i print('end---') t=test() print(next(t))输出结果:
begin--- 0