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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值