python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python iter函数

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函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文