• 探索list与iterator的区别及yield的用法


    1 问题

    1. 探索list与iterator的区别

    2. 探索yield的用法

    2 方法

    1. 通过网上学习后了解到 List返回的类型是list,list只会查询一级缓存。

      list()中返回的List中每个对象都是原本的对象。

      查询的时候没遍历一个对象会产生一条sql


      而iterator这个迭代器返回的类型是iterator,做查询的时候iterate()会先到数据库中把id都取出来,iterate会查询2级缓存,iterate()中返回的对象是代理对象.;

    2. 首先我们要知道什么是yelid,先应该了解generator,iterator,iterable;

    Iterables 可迭代的:
    代码实现:
    mylist = [1, 2, 3]
    for i in mylist:
    print(i)
    e6c5402962d03f89fc64a397085e3e15.png
    Iterator 迭代器:
    for i in range(5):
    print(i) # 0 1 2 3 4
    931628cb176eed2b09d0dadbdf91acb0.png
    Generator 生成器:
    my_generator = (x*x for x in range(10))
    for i in my_generator:
    print(i) # 0 1 4 9 16 25 36 49 64 81
    f81feacc4e3d8630a78f9ecbbb5ad480.png

    Yield 产生器:yield相当于return,但它返回的是一个生成器:
    代码实现:
    def test():
    print("First")
    yield 1
    print("Second")
    yield 2
    print("Third")
    yield 3
    my_generator = test() # 创建生成器
    print(type(my_generator)) #
    7be06a362d46cd12ba37b47964ff127f.png
    函数使用 yield 作为返回值,那么它就变成了一个生成器函数。与普通函数不同,生成器函数被调用后,函数体中的代码不会立即执行(执行my_generator=test()后不打印任何值),而是返回一个生成器,正如我们前面提到的:generator 是迭代器,而 yield 可以被视为 return。

    3 结语

    针对list和iterator与yelid用法的问题,提出用代码来实现来验证的方法,通过百度以及在csdn上查询资料了解到这两个问题后,证明该方法是有效的,通过在两个问题我们学习到了list与iterator的区别,以及yelid的函数的可视为return。

  • 相关阅读:
    11.11 校招 实习 内推 面经
    召回阶段的相关模型
    办公技能——如何写好会议纪要,提升职业素养
    109.(leaflet篇)leaflet实现沿轨迹线播放
    PGSQL中的LIKE,ILIKE,SIMILAR TO的使用
    python写带ACL的kafka集群问题
    网络中的图片传输
    Pandas介绍
    数据结构与算法
    华为云Stack的学习(四)
  • 原文地址:https://blog.csdn.net/gschen_cn/article/details/141040167