2023年12月25日发(作者:)

类似%temp%语法

这里的temp是一个字典dict对象,而且它是通过for循环每次获取可迭代对象(Iterable)中的一个值.

在该代码中就是每次获取student_infos(字典列表)中的每一个字典对象(student_infos[0]、student_infos[1]...)。

下面对几个概念进行介绍

可迭代对象(Iterable)

Python中可以直接作用于for循环的对象统称为可迭代对象:Iterable。 上面的student_infos(字典列表)就是一个可迭代对象。list、dict、str这些都是可迭代对象。更加一般的如果一个对象拥有__iter__方法,其是可迭代对象。

而通过for循环就能获取这些可迭代对象中的每个数据,这个数据可能是基本数据类型如整数int, 字符,字符串等,另外也可以是字典dict、列表list等这些可迭代对象。在上面的代码中就是dict。

迭代器(Iterator)

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 迭代器是一个惰性计算的序列,它需要不断调用next()函数才能不断返回下一个数据。

list、dict、str虽然是可迭代对象(Iterable),却不是迭代器(Iterator)。不过可以通过iter()函数获得一个Iterator对象。

生成器(generator)

在 Python 中,使用了 yield 的函数被称为生成器(generator)。

生成器是一种特殊的迭代器,生成器自动实现了“迭代器协议”(即iter和next方法)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,调用一个生成器函数,返回的是一个迭代器对象。