Python—迭代器,生成器,列表推导式

此页面是否是列表页或首页?未找到合适正文内容。

Python—迭代器,生成器,列表推导式

标签:筛选lex完美[]报错objectcasbleflag

# 02,迭代器# 可迭代对象:内部含有__iter__# 迭代器:可迭代对象.__iter__()# 迭代器:内部含有__iter__且__next__# 判断 __iter__ 在不在dir(对象中)# isinstance()# 节省内存。# 惰性机制。# 单向不可逆。# for循环的机制:# while# pass# 可迭代对象# 迭代器# 两者区别# 模拟for循环机制## 03,生成器# 本质上是迭代器,用python代码构建的。# 生成器定义# 生成器的写法# yield# send#迭代器#可迭代对象# s1 = ‘123‘# for i in s1:# print(i)#错误例子:# int object is not iterable# for i in 123:# print(i)#内部含有__iter__方法的就是可迭代对象,遵循可迭代协议。#dir# print(dir(‘123‘)) # ‘__iter__‘# print(‘__iter__‘ in dir([1, 2, 3]))# print(‘__iter__‘ in dir({‘name‘:‘alex‘}))# print(‘__iter__‘ in dir({‘name‘}))# print(‘__iter__‘ in dir((1, 2, 3)))# print(‘__iter__‘ in dir(1)) # False# print(‘__iter__‘ in dir(True)) # False# 可迭代对象通过.__iter__()可以转换成迭代器,满足迭代器协议。# # 内部含有__iter__ 且 __next__方法的就是迭代器。# l = [1, 2, 3,5]# l_obj = l.__iter__()# print(l_obj)# 迭代器的取值两种方法:# 方法一:__next__()# print(l_obj.__next__())# print(l_obj.__next__())# print(l_obj.__next__())# print(l_obj.__next__())# 方法二 for循环# for i in l_obj:# print(i)# print(‘__next__‘ in dir(l_obj))# 第二种判断方式:# from collections import Iterable #迭代对象# from collections import Iterator #迭代器# print(isinstance(‘123‘, Iterable))# print(isinstance(‘123‘, Iterator))# 实际上可迭代对象是不可以一个一个的一次取值的,因为他没有__next__方法。# for循环提供一个机制:

作者: 电脑大师

为您推荐

返回顶部