zoukankan      html  css  js  c++  java
  • pyhton 三元、生成器的使用

    #生成器:列表解析(数据量大,占内存)
    a=[i for i in range(100)]
    #生成器表达式:
    a=(i for i in range(100))

    #生成器函数:
    def gen():
      yield:1
      yield:2


    # 三元、迭代

    list1= [1,2,3,4]

    a=[i for i in list1]
    # generator 生成器(简单点理解生成器就是一个迭代器)
    '''
    生成器的好处:
    1.占用内存小,不会像list等需要加载所有元素到内存在转为迭代器
    2.效率高,不需要转换为迭代器
    '''
    # 三元+生成器
    b=(i for i in list1 if i>2)
    for i in b:
    print(i)
    # 迭代器
    c=list1.__iter__()
    print(type(a))
    print(type(b))
    print(type(c))

    # 生成器的使用
    def gen1():
    yield 1
    yield 2
    yield 3
    gen = gen1()
    print(next(gen))
    print(next(gen))
    print(next(gen))

    def gen2(name):
    while True:
    # res接受gen.send(obj)传的值(注意:name和传的形参无必然关系)
    res = yield "name:%s" %name
    name = res
    gen = gen2("lds")
    print(gen.send(None))
    print(gen.send("123"))
    print(gen.send("1234"))

  • 相关阅读:
    STL next_permutation 全排列
    日期问题
    兰顿蚂蚁
    矩阵翻硬币
    数学问题-排列组合
    h5css3_03练习
    h5css3_03
    h5css3_02练习
    h5css3_02
    h5c3_01练习
  • 原文地址:https://www.cnblogs.com/lides/p/11080070.html
Copyright © 2011-2022 走看看