列表表达式,生成器表达式,

列表表达式

#普通代码
result=[]
for i in [1,2,3]
    result.append[i*i]
print(result)

#列表表达式
print([i*i for i in [1,2,3]])

生成器表达式:

  把列表解析的[]换成()得到的就是生成器表达式;列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更节省内存

laomuji=('鸡蛋%s' %i for i in range(10))        #生成器表达式
print(laomuji)                                 #返回生成器地址<generator object <genexpr> at 0x000001E17AF23BA0>
print(next(laomuji))                           #输出结果为:鸡蛋0
print(laomuji.__next__())                      #输出结果为:鸡蛋1
print(next(laomuji))                           #输出结果为:鸡蛋2
                                               #next(laomuji)等价于laomuji.__next__()

列表表达式与生成器表达式之间互转:

 
 
print([i/2 for i in range(100)])  # 列表表达式
list = (i/2 for i in range(100))  # 生成器表达式
print(list.__next__())

print([i*i for i in range(30) if i % 3 is 0])
list = (i*i for i in range(30) if i % 3 is 0)
print(list.__next__())
 
 

 

 

转载于:https://www.cnblogs.com/jassin-du/p/7828851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值