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

3 结语

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

相关推荐
蒙奇D索大38 分钟前
【数据结构】考研数据结构核心考点:平衡二叉树(AVL树)详解——平衡因子与4大旋转操作入门指南
数据结构·笔记·学习·考研·改行学it
im_AMBER2 小时前
数据结构 04 栈和队列
数据结构·笔记·学习
CAU界编程小白4 小时前
数据结构系列之堆
数据结构·c
Excuse_lighttime5 小时前
只出现一次的数字(位运算算法)
java·数据结构·算法·leetcode·eclipse
liu****5 小时前
笔试强训(二)
开发语言·数据结构·c++·算法·哈希算法
Syntech_Wuz7 小时前
从 C 到 C++:容器适配器 std::stack 与 std::queue 详解
数据结构·c++·容器··队列
艾莉丝努力练剑8 小时前
【C++STL :stack && queue (一) 】STL:stack与queue全解析|深入使用(附高频算法题详解)
linux·开发语言·数据结构·c++·算法
小此方9 小时前
C语言自定义变量类型结构体理论:从初见到精通(下)
c语言·数据结构·算法
im_AMBER9 小时前
数据结构 05 栈和队列
数据结构·笔记·学习
_poplar_9 小时前
15 【C++11 新特性】统一的列表初始化和变量类型推导
开发语言·数据结构·c++·git·算法