Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對(duì)象和類

Python 日期和時(shí)間

Python 高級(jí)知識(shí)

Python 參考手冊(cè)

Python iter() 使用方法及示例

Python 內(nèi)置函數(shù)

Python的iter()函數(shù)返回給定對(duì)象的迭代器。

iter()函數(shù)創(chuàng)建一個(gè)可以一次迭代一個(gè)元素的對(duì)象。

當(dāng)與for循環(huán),while循環(huán)等循環(huán)耦合時(shí),這些對(duì)象很有用。

iter()函數(shù)的語(yǔ)法為:

iter(object, sentinel)

iter()參數(shù)

iter()函數(shù)有兩個(gè)參數(shù):

  • object-必須創(chuàng)建迭代器的對(duì)象(可以是settuples等)

  • sentinel(可選) -用于表示序列結(jié)束的特殊值

iter()返回值

  • iter()函數(shù)返回給定對(duì)象的迭代器對(duì)象。

  • 如果用戶定義的對(duì)象未實(shí)現(xiàn)__iter__(),__next__()或__getitem()__,則會(huì)引發(fā)TypeError異常。

  • 如果還提供了sentinel參數(shù),iter()將返回一個(gè)迭代器,直到?jīng)]有找到標(biāo)記字符為止。

示例1:Python iter()的工作

# 元音列表
list of vowels
vowels = ['a', 'e', 'i', 'o', 'u']
vowels_iter = iter(vowels)

print(next(vowels_iter))    # 'a'
print(next(vowels_iter))    # 'e'
print(next(vowels_iter))    # 'i'
print(next(vowels_iter))    # 'o'
print(next(vowels_iter))    # 'u'

輸出結(jié)果

a
e
i
o
u

示例2:自定義對(duì)象的iter()

class PrintNumber:
    def __init__(self, max):
        self.max = max

    def __iter__(self):
        self.num = 0
        return self

    def __next__(self):
        if(self.num >= self.max):
            raise StopIteration
        self.num += 1
        return self.num

print_num = PrintNumber(3)

print_num_iter = iter(print_num)
print(next(print_num_iter))  # 1
print(next(print_num_iter))  # 2
print(next(print_num_iter))  # 3

# 引發(fā)StopIteration
print(next(print_num_iter))

輸出結(jié)果

1
2
3
StopIteration

示例3:帶有sentinel參數(shù)的iter()

with open('mydata.txt') as fp:
    for line in iter(fp.readline, ''):
        processLine(line)

運(yùn)行該程序時(shí),它將以讀取模式打開(kāi)mydata.txt文件。

然后,for循環(huán)中的iter(fp.readline,'')調(diào)用readline(讀取文本文件中的每一行),直到到達(dá)標(biāo)記字符''(空字符串)為止。

推薦閱讀:Python迭代器  Python 內(nèi)置函數(shù)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清