python——推导、迭代器、生成器

xiaoxiao2021-02-28  5

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 4

3、生成器

在python中使用yield代替return的函数被称为生成器。

例:

def test(): for i in range(5): print('begin---') yield i print('end---') t=test() print(next(t))

输出结果:

begin--- 0
转载请注明原文地址: https://www.6miu.com/read-1900025.html

最新回复(0)