Python中的iter()函数用法和示例
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()函数将其转换为迭代器,从而更方便地进行遍历操作。
