7.5-7.6 列表生成式和生成器以及区别-阿里云开发者社区

开发者社区> 小周啊> 正文

7.5-7.6 列表生成式和生成器以及区别

简介: 一、列表生成式是 python 受欢迎的语法之一 通过一句简洁的语法就可以对一组元素进行过滤 还可以对得到的元素进行转换处理。 li = [x + x for x in range(1, 101) if x % 2 == 0] print(li) def funa(x): ...
+关注继续查看

一、列表生成式是 python 受欢迎的语法之一

通过一句简洁的语法就可以对一组元素进行过滤

还可以对得到的元素进行转换处理。

li = [x + x for x in range(1, 101) if x % 2 == 0]
print(li)

def funa(x):
    a=[]
    for x in range(1, 101):
        if x % 2 == 0:
            a.append(x+x)
    return a
print(funa(1))


二、列表生成器

1、最简单的办法,把原来的生成式的 [] 换成 () 就 ok 了

lt=(x*x for x in range(1,11) if x%2==0)
print(list(lt))
print(type(lt))
for i in lt:
    print(i)


2、函数中定义列表生成器

def fib(n):
    sum=0
    i=0
    while(i<n):
        sum=sum+i
        i+=1
        yield (sum)
print(type(fib(10)))
for x in fib(10):
    print(x)
print(type(fib(10)))


生成器和生成式的区别:

1、列表生成式,一次性生成所有的数据,然后保存在内存中,适合小量的数据

2、生成器,返回一个可以迭代的对象,及 'generator' 对象,必须通过循环才可以一一取出所以的结果

3、可迭代对象,可以通过循环调用出来的,就是可迭代的对象 [] () {} 生成式 生成器

4、迭代器  生成器,必须通过 next() 调用的,被 next() 函数调用并不断返回下一个值得对象称为迭代器


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
写一个通用的代码生成器
       代码生成器对于JAVA码农来说并不陌生。在一些业务性比较强,但编码比较规范的项目中,往往会有大量的重复或者类似的代码要写。比如对表的增删改查,比如生成用于远程调用的客户端方法存根等等。面对这种情况,程序员通常的做法就是拿一个现成模块的代码copy过来再改改。
2917 0
用asDoc生成帮助文档
开始->程序->Adobe Flex 3 SDK Command Prompt 输入 asdoc -source-path d:\flexProject\你的项目\src -doc-classes 主类名 这样会生成所有类的帮助文档 有时只生成一个类,如果想生成所有 asdoc -sour...
634 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12060 0
7.5-7.6 列表生成式和生成器以及区别
一、列表生成式是 python 受欢迎的语法之一 通过一句简洁的语法就可以对一组元素进行过滤 还可以对得到的元素进行转换处理。 li = [x + x for x in range(1, 101) if x % 2 == 0] print(li) def funa(x): ...
542 0
PKCS12 证书的生成及验证
本文首先感谢 Apple 开发者论坛的eskimo1,他是我见过的最热心肠的人,对任何人他都不吝于给予无私帮助。
2223 0
+关注
小周啊
天下同归而殊途,一致而百虑
91
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载