codecamp

Python3 iter() 函数 -生成迭代器

Python 内置函数 Python 内置函数


描述

Python​ iter() ​函数用来生成迭代器。

有些对象(尤其是自定义的对象)可以像数组一样读出数据,但本身不是可迭代对象,这个时候就可以使用iter()将其转换成可迭代对象。

 在类中实现了如果只实现​__getitem__()​的对象可以通过​iter()​函数转化成迭代器但其本身不是可迭代对象。所以当一个对象能够在for循环中运行时,不能确定是Iterable对象。 


语法

iter()​ 方法的语法有两种,分别是:

iter(object)

iter(object, sentinel)

sentinel参数用于指示迭代的停止条件。


参数

  • object:支持迭代的集合对象(在不传入sentinel参数时)或者可调用的对象(第二种情况)。
  • sentinel:如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的​__next__()​方法时,都会调用 object。

返回值

迭代器对象。


实例

from typing import Iterable

class LinearDataStructure:
    # 一个自己实现的线性表,未传参时默认为1,2,3
    
    def __init__(self, data=[1, 2, 3]):
        self.data = data

    def get_data(self):
        return self.data
    
    def __getitem__(self,idx):
        return(self.data[idx])
    
# 第一种语法
lds = LinearDataStructure()
print(isinstance(lds,Iterable))  # 这个线性表不是可迭代对象
print(isinstance(iter(lds),Iterable)) # 使用iter方法可以把这个线性表变成可迭代对象




# 第二种语法
def read_until(f, stop):
    return iter(lambda: f.readline().strip(), stop)

with open('file.txt') as f:
    for line in read_until(f, ''):
        print(line)



Python 内置函数 Python 内置函数



Python3 all() 函数 - 指示列表中的所有元素是否都为真
Python3 dir() 函数 -返回指定对象的所有属性和方法
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

相关教程

Python基础教程

python内置库

python3 math模块

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }