欢迎访问宙启技术站
智能推送

Python中的iter()函数用法和示例

发布时间:2023-06-14 07:05:19

iter()函数是python中内置函数之一,其主要作用是将一个可迭代对象变成一个迭代器,方便对可迭代对象的元素进行遍历操作。iter()函数的语法如下:

iter(iterable[, sentinel])

其中,可选参数sentinel表示一个特殊的值,当遍历到对象中具有该值的元素时,迭代器停止迭代。

用法示例:

1.列表遍历:

lst = [1, 2, 3, 4, 5]

it = iter(lst)

while True:

    try:

        item = next(it)

        print(item)

    except StopIteration:

        break

输出:

1

2

3

4

5

2.字符串遍历:

str1 = 'Hello World'

it = iter(str1)

while True:

    try:

        char = next(it)

        print(char)

    except StopIteration:

        break

输出:

H

e

l

l

o

W

o

r

l

d

3.dictionary遍历:

dict1 = {'a': 1, 'b': 2, 'c': 3}

it = iter(dict1)

while True:

    try:

        key = next(it)

        print(key, dict1[key])

    except StopIteration:

        break

输出:

a 1

b 2

c 3

sentinel参数示例:

1.通过sentinel参数停止迭代:

def my_generator(sentinel):

    i = 0

    while i != sentinel:

        i = yield i

        print('i:', i)

gen = my_generator(3)

it = iter(gen)

while True:

    try:

        item = next(it)

        print('item:', item)

        if item == 2:

            next(it)

    except StopIteration:

        break

输出:

item: 0

i: None

item: 1

i: None

item: 2

i: None

i: None

2.不传递sentinel参数则迭代永远不会停止:

def my_generator():

    i = 0

    while True:

        i = yield i

        print('i:', i)

gen = my_generator()

it = iter(gen)

while True:

    try:

        item = next(it)

        print('item:', item)

        if item == 2:

            next(it)

    except StopIteration:

        break

输出:

item: 0

i: None

item: 1

i: None

item: 2

i: None

item: 0

i: None

item: 1

i: None

item: 2

i: None

...

总结:

iter()函数是一个非常常用的函数,它可以将可迭代对象转换成迭代器,方便对其元素进行遍历操作。同时,iter()函数还可以通过sentinel参数指定特殊值,来控制迭代器的停止。需要注意的是,如果不传递sentinel参数,则迭代器将永远不会停止。当我们需要对可迭代对象进行遍历时,可以使用iter()函数将其转换为迭代器,从而更方便地进行遍历操作。