• day13——Python列表生成式和生成器


        列表生成式是Python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换算下。语法格式为:
    #列表生成式
    #求偶数的平方
    li = [x*x for x in xrange(1,101) if x%2 == 0]
    print(li)
     
    print('#'*50)
    #列表生成器
    #1.最简单的就去,把原来的生成式的[]换成()就ok了
    lt = (x*x for x in xrange(1,101) if x%2 == 0)
    print(lt)
    print('#'*50)
    print(type(lt))
    print('#'*50)
    for i in lt:
    print(i),
     
    #2.函数中定义列表生成器
    print('#'*50)
    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)
     
    打印结果为:
    [4, 16, 36, 64, 100, 144, 196, 256, 324, 400, 484, 576, 676, 784, 900, 1024, 1156, 1296, 1444, 1600, 1764, 1936, 2116, 2304, 2500, 2704, 2916, 3136, 3364, 3600, 3844, 4096, 4356, 4624, 4900, 5184, 5476, 5776, 6084, 6400, 6724, 7056, 7396, 7744, 8100, 8464, 8836, 9216, 9604, 10000]
    ##################################################
    <generator object <genexpr> at 0x000000000220E2D0>
    ##################################################
    <type 'generator'>
    ##################################################
    4 16 36 64 100 144 196 256 324 400 484 576 676 784 900 1024 1156 1296 1444 1600 1764 1936 2116 2304 2500 2704 2916 3136 3364 3600 3844 4096 4356 4624 4900 5184 5476 5776 6084 6400 6724 7056 7396 7744 8100 8464 8836 9216 9604 10000 ##################################################
    <type 'generator'>
     
     
     
    生成器和生成式的区别:
     
    #生成式:一次性生成所有的数据,然后保存在内存中,适合小量的数据
    #生成器:返回一个可以迭代的对象,及'generator'对象,必须通过循环才可以一一去取所有的结果
    #可迭代对象:可以通过循环调用出来的,就是可迭代的对象,如:[]、()、{}、生成式
    #迭代器:可以简单理解成生成器,必须通过next()函数调用的,被next()函数调用并不断返回下一个值的对象称为迭代器
     
     
    1 for i in xrange(1,10):
    2     for j in xrange(1,i+1):
    3         print "%s*%s = %s" %(j,i,j*i),
    4     print
     
  • 相关阅读:
    用Shell判断字符串包含关系
    shell命令调用http接口(curl方式)
    shell脚本实现发送信息到钉钉
    功能测试特殊字符处理总结
    Java_Swing实现小球沿正弦曲线运动的代码
    Python迁移MySQL数据到MongoDB脚本
    1. WP8.1学习笔记
    0. WP8.1学习笔记
    小练习--低仿系统计算器
    C#字符串题目
  • 原文地址:https://www.cnblogs.com/yangjinbiao/p/7781066.html
Copyright © 2020-2023  润新知