列表生成器和生成式

1.列表生成式

  • 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式
  • 可以用来创建列表的生成式
  • 注意事项:
            1.list()函数瞎用!误以为是生成式用来创建列表的工具
              list()函数的功能:将元组转化成列表
            2.生成式的用法:直接在外面加[]
            3.生成器的用法:直接在外面用()
#ListComprehension.py
'''
    描述:熟悉列表生成式的用法
    作者:Dragon
    时间:2020年1月23日09:34:02
    功能:list()生成式能够让代码更为简洁,但是缺点是占用内存较大
          因此,为了解决生成式占用内存容量的问题,推出了生成器
    注意事项:
            1.list()函数瞎用!误以为是生成式用来创建列表的工具
              list()函数的功能:将元组转化成列表
            2.生成式的用法:直接在外面加[]
            3.生成器的用法:直接在外面用()
'''

#普通列表的创建
l1=[1,2,3,4,5,6,7,8,9]
print(l1)       #[1, 2, 3, 4, 5, 6, 7, 8, 9]

#使用列表生成式创建,使用[]创建
l2=[range(1,10)]
print(l2)       #[1, 2, 3, 4, 5, 6, 7, 8, 9]

#使用for-in循环#
l3=[x*x for x in range(1,10)]
print(l3)       #[1, 4, 9, 16, 25, 36, 49, 64, 81]

#使用for-in循环,并加上if语句,生成偶数项
l4=[x*x for x in range(1,10) if x%2==0]
print(l4)       #[4, 16, 36, 64]

#在list()中使用双层循环:两个字符组合
l5=[m+n for m in 'abc' for n in '123']
print(l5)       #['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']

2.列表生成器

  • 作用:使用生成式的时候,由于机器的容量是有限的,创建列表会受到内存限制,因此推出生成器来创建列表
  • 前提:列表元素可以按照某种算法推出来,那么就不必创建完整的list,从而节约出大量的空间,这种一边循环一遍计算的机制,称为生成器
  • 使用:和生成式一样,不过外面不是方括号[],而是圆括号()
  • 打印生成器的元素:next()和for循环迭代对象
#ListGenerator.py

'''
    描述:熟练掌握生成器的使用方法
    作者:Dragon
    时间:2020年1月23日09:57:23
'''

#使用生成器创建列表
l1=(x for x in range(1,10))
print(l1)       #这样打印的是内存地址:<generator object <genexpr> at 0x00347258>

#使用for循环打印
for elem in l1:
    print(elem,end=",")
print()

#使用next打印,next()中不放下标,放迭代器对象
#l1.next()

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值