python列表生成表达式,生成器函数,生成器表达式

  • python列表生成式:

info = [1,2,3,4,5]
b = []
# 枚举方法
for index, value in enumerate(info):
    info[index] += 1
print info 

# map + lambda

a = map(lambda x:x+1, info)
print a
for i in a:
    print I

# 列表生成式

a = [x+1 for x in info]
print a
  • python 生成器:

列表生成式会创建一个列表,占用内存空间。

生成器会在循环的过程中不断推算出后续的元素,不必创建完整的list,从而节省大量的空间,生成器中存储的是算法,一次只生成一个值。占用少量的内存空间。

生成器函数:

1. 每次调用next方法执行函数生成一个值

2.遇到yield语句返回一个结果,阻塞(每次执行yield,在迭代器函数中中断执行,并返回迭代器当前值)

3.再次执行迭代器函数、next方法,从上次yield语句返回处继续执行

生成器表达式:

返回一个对象,这个对象只有在需要的时候才产生结果

生成器表达式来源于迭代和列表解析的组合,生成器和列表解析类似,但是它使用尖括号而不是方括号

>>> # 列表解析生成列表
>>> [ x ** 3 for x in range(5)]
[0, 1, 8, 27, 64]
>>>
>>> # 生成器表达式
>>> (x ** 3 for x in range(5))
<generator object <genexpr> at 0x000000000315F678>
>>> # 两者之间转换
>>> list(x ** 3 for x in range(5))
[0, 1, 8, 27, 64]

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值