首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第3章 Python 基础 ( 迭代器 )

可以使用isinstance()判断一个对象是否是Iterable对象: >>> from collections import Iterable >>> isinstance([], Iterable...可以使用isinstance()判断一个对象是否是Iterator对象: >>> from collections import Iterator >>> isinstance((x for x in...这是因为PythonIterator对象表示是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator计算是惰性,只有在需要返回下一个数据时它才会计算。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数

12110

python 迭代器

可以使用isinstance()判断一个对象是否是Iterable对象: 查看列表 from collections import Iterable print(isinstance([], Iterable...可以被next()函数调用并不断返回下一个值对象称为迭代器:Iterator。 可以使用isinstance()判断一个对象是否是Iterator器对象,注意,和上面代码不一致!...这是因为PythonIterator对象表示是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator计算是惰性,只有在需要返回下一个数据时它才会计算。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数

57910
您找到你想要的搜索结果了吗?
是的
没有找到

【26】Python Iterator笔

这些是可以直接作用于for循环对象统称为可迭代对象:Iterable 可以使用isinstance()用作判断一个对象是否是Iterable对象 from collections import Iterable...可以进行for循环并且还可以用next不断返回下一个值称为迭代器:Iterator 可以使用isinstance用作判断一个对象是否是Iterator对象 from collections import...把list、dict、str变为Iterable可以使用iter函数。...这是因为PythonIterator对象表示是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数

50630

阿里云二面: String 为什么不可变?

可变性 简单来说:String 类中使用 final 关键字修饰字符数组来保存字符串,所以String 对象是不可。...因此,final 关键字修饰数组保存字符串并不是 String 不可根本原因,因为这个数组保存字符串是可变(final 修饰引用类型变量情况)。...如果字符串中包含汉字没有超过 Latin-1 可表示范围内字符,那就会使用 Latin-1 作为编码方案。...; return this; } //... } 线程安全性 String 中象是不可,也就可以理解为常量,线程安全。...StringBuffer 对方法加了同步锁或者对调用方法加了同步锁,所以是线程安全。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全

31610

Python18 迭代器

可以使用isinstance()判断一个对象是否是Iterable对象 from collections import Iterable #Iterable用来判断是否可迭代 print (isinstance...可以使用isinstance()判断一个对象是否是Iterator对象: a =[1,2,3] print (dir(a)) ?...这是因为PythonIterator对象表示是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数。...Pythonfor循环本质上就是通过不断调用next()函数实现,例如: ? 在3.X中range(0,10)就是一个迭代器,在2.X中就是可迭代对象,在2.X中使用xrange就是迭代器。

37110

Python 高级特性(5)- 迭代器

如何判断是不是迭代器 可以使用 isinstance() 判断一个对象是否是 Iterator 对象 print(isinstance([], Iterator)) print(isinstance(...,比如整型 为什么 list、dict、str 等数据类型不是 Iterator Iterator 对象表示是一个数据流,Iterator 对象可以被 函数调用并不断返回下一个数据,直到没有数据时抛出...StopIteration 错误 next() 可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列长度,只能不断通过 函数实现按需计算下一个数据,所以 Iterator 计算是惰性...而使用list是永远不可能存储全体自然数 总结 凡是可作用于 for 循环对象都是 Iterable 类型 凡是可作用于 next() 函数对象都是 Iterator 类型,它们表示一个惰性计算序列...集合数据类型如 list、dict、str 等是 Iterable 但不是 Iterator,不过可以通过 iter() 函数获得一个 Iterator 对象 Python for 循环本质上就是通过不断调用

26630

【javascript】详解变量,值,类型和宿主对象

}是对象, 而像[ ]这样, 虽然也是对象, 但我们还是叫它数组吧 弱类型JS 在了解JS弱类型之前,我们需要了解一点—— JS里值才有类型,变量没有 我们经常会谈到JS类型,其实是针对变量...“封装类型对象”是不可 2....(a.toString()); // 输出 字符串1 【注意】undefined和 null 这两个特殊类型你无法调toString(),因为它们根本没有这个方法 var a = undefined...JSON安全值(function, undefined和Symbol) JSON.stringify却避之唯恐不及 这些值: 作为单个值使用时候会一律返回undefined JSON.stringify...如果你是一个有经验JS开发者,这有可能不是什么难题, 但我认为这些“判断题”初学JS的人来说的确不那么友好 下面我给三点论断让大家能够正确判断 1.

1.7K60

4 Python 基础: 讲解迭代、过滤、匿名函数、排序算法四大知识点

Iterator甚至可以表示一个无限大数据流,例如全体自然数。 而使用list是永远不可能存储全体自然数。...可以使用isinstance()判断一个对象是否是Iterable对象: [image.png] 而生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration...可以使用isinstance()判断一个对象是否是Iterator对象: [image.png] 生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数。...无论使用冒泡排序还是快速排序,排序核心是比较两个元素大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上大小是没有意义,因此,比较过程必须通过函数抽象出来。

52470

Python迭代器

可以使用isinstance()判断一个对象是否是Iterator对象: >>>from collections import Iterator >>>isinstance((x for x in range...把list、dict、'str'等Iterable变成Iterator可以使用iter()函数: >>>isinstance(iter([]), Iterator) True >>>isinstance...这是因为PythonIterator对象表示是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...可以把数据流看做是一个有序序列,但我们却不能提前直到序列长度,只要不断通过next()函数实现按需计算下一个数据,所以Iterator计算是惰性,只有在需要返回一个数据时它才会计算。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数

50520

【javascript】详解变量,值,类型和宿主对象

就是说“看上去像” { }是对象, 而像[ ]这样, 虽然也是对象, 但我们还是叫它数组吧 弱类型JS 在了解JS弱类型之前,我们需要了解一点—— JS里值才有类型,变量没有 我们经常会谈到JS类型...“封装类型对象”是不可 2....(a.toString()); // 输出 字符串1 【注意】undefined和 null 这两个特殊类型你无法调toString(),因为它们根本没有这个方法 var a = undefined...JSON安全值(function, undefined和Symbol) JSON.stringify却避之唯恐不及 这些值: 作为单个值使用时候会一律返回undefined JSON.stringify...如果你是一个有经验JS开发者,这有可能不是什么难题, 但我认为这些“判断题”初学JS的人来说的确不那么友好 下面我给三点论断让大家能够正确判断 1.

1.1K10

Python装饰器用法与知识点小结

生成器只有在调用时才会生成相应数据,只记录当前位置。...把list、dict、str等Iterable变成Iterator可以使用iter()函数: 例如:iter([])<====迭代器 PythonIterator对象表示是一个数据流,Iterator...对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator计算是惰性,只有在需要返回下一个数据时它才会计算。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数

30210

Python小知识点(3)--装饰器

可以使用isinstance()判断一个对象是否是Iterable对象 from collections import Iterable  isinstance([], Iterable)=======...把list、dict、str等Iterable变成Iterator可以使用iter()函数: 例如:iter([])<====迭代器 PythonIterator对象表示是一个数据流,Iterator...对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。...可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator计算是惰性,只有在需要返回下一个数据时它才会计算。...Iterator甚至可以表示一个无限大数据流,例如全体自然数。而使用list是永远不可能存储全体自然数

32330
领券