Python中iter函数的具体使用
作者:pdc31czy
Python中iter函数用于创建迭代器对象,可以遍历可迭代对象的元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
因为在jax的代码接触了这个函数,不是很熟悉,每次看见名字只知道是迭代但是不知道是怎么迭代,因此写下以下笔记提醒自己。
def iter(source, sentinel=None): # known special case of iter """ iter(iterable) -> iterator iter(callable, sentinel) -> iterator Get an iterator from an object. In the first form, the argument must supply its own iterator, or be a sequence. In the second form, the callable is called until it returns the sentinel. """ pass
Python 中的 iter 函数
在 Python 编程中,iter
函数是一个非常有用的内置函数,用于创建迭代器对象。迭代器是一种允许你遍历集合(如列表、元组、字典等)中的元素的对象。iter
函数有两种主要用法:
iter(iterable) -> iterator
:
这种形式接受一个可迭代对象(如列表、元组、字典等),并返回一个迭代器。迭代器可以用来遍历可迭代对象的元素。
例如:
my_list = [1, 2, 3, 4, 5] iterator = iter(my_list) print(next(iterator)) # 输出:1 print(next(iterator)) # 输出:2
iter(callable, sentinel) -> iterator
:
这种形式接受一个可调用对象(如函数)和一个哨兵值。它会调用可调用对象,直到返回哨兵值。
例如:
import random def my_callable(): return random.randint(1, 10) iterator = iter(my_callable, 5) print(next(iterator)) # 输出:1 到 10 之间的随机整数 print(next(iterator)) # 输出:1 到 10 之间的随机整数
假设 my_callable 函数返回的随机数序列是 [3, 7, 5, 2, 8],那么代码的输出可能是:
print(next(iterator)) # 输出:3 print(next(iterator)) # 输出:7
当 my_callable 函数返回 5 时,迭代器会停止,因为 5 是哨兵值。
自定义 iter 函数
为了更好地理解 iter
函数的工作原理,我们可以实现一个简单的自定义版本:
def iter(source, sentinel=None): if sentinel is None: # Form 1: iter(iterable) return source.__iter__() else: # Form 2: iter(callable, sentinel) while True: value = source() if value == sentinel: break yield value
到此这篇关于Python中iter函数的具体使用的文章就介绍到这了,更多相关Python iter函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!