Python在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
动物识别系统 发布于:2023-12-04 11:31 线性计数排序 发布于:2023-12-03 11:01 计数排序(Counting Sort) 发布于:2023-12-03 10:58 输出函数和输入函数 print和input 发布于:2023-12-02 14:22 线性计数排序 发布于:2023-12-01 21:13 输出最大公因数和最小公倍数 发布于:2023-11-30 21:33 python背包问题 发布于:2023-11-30 13:04 堆排序实现代码 发布于:2023-11-28 23:26 堆排序的实现 发布于:2023-11-26 22:20 魔塔最新代码 发布于:2023-11-24 22:57 魔塔小游戏 发布于:2023-11-24 21:36 Learn Python 发布于:2023-11-24 20:21 mei guui hua de jian chu you yi ge ! 发布于:2023-11-24 14:23 短信测压测试 发布于:2023-11-24 02:20 文字冒险游戏的代码示例 发布于:2023-11-23 16:10 堆排序实验 发布于:2023-11-22 21:07 序列求和向上取整 发布于:2023-11-22 15:58 高速公路收费程序 发布于:2023-11-21 09:18 小游戏(正在开发中) 发布于:2023-11-17 22:42 python-单链表的实现 发布于:2023-11-17 17:21 带参构造方法 发布于:2023-11-17 09:20 1110作业2-def minmax(data)以元组的形式返回min和max 发布于:2023-11-16 21:36 python-篮球比赛领先优势 发布于:2023-11-16 20:42 在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素 发布于:2023-11-14 23:38 在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素 发布于:2023-11-14 23:38 快速排序的代码分析 发布于:2023-11-14 23:36 排序算法运用排序 发布于:2023-11-14 22:47 快速排序cc 发布于:2023-11-14 22:37 如何在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素 发布于:2023-11-14 20:21 快速排序算法 发布于:2023-11-14 20:19 快速排序的实现 发布于:2023-11-13 15:47 在无序数组中找到第K大的元素 发布于:2023-11-13 15:44 找数组中第K大元素 发布于:2023-11-12 22:09 快速排序序 发布于:2023-11-12 21:58 2.如何在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素 发布于:2023-11-12 19:15 快速选择算法 发布于:2023-11-10 21:59 快速排序算法 发布于:2023-11-10 21:55 python-猜数字游戏的实现 发布于:2023-11-10 16:37 python-双端队列判断是否为回文词 发布于:2023-11-10 15:23 python-双端队列的实现 发布于:2023-11-10 14:55 python-队列解决热土豆问题 发布于:2023-11-10 14:10 数组累加、、 发布于:2023-11-07 16:54 农民分土地问题 发布于:2023-11-07 16:54 求解无序数组中逆序对的个数 发布于:2023-11-06 22:24 python的归并排序 发布于:2023-11-06 22:20 归并算法统计逆序对 发布于:2023-11-06 22:15 求解无序数组中逆序对的个数 发布于:2023-11-06 20:20 归并排序d实验 发布于:2023-11-06 14:23 祝张钰永远单身 发布于:2023-11-04 14:06 归并排序示例 发布于:2023-11-04 01:17 [更多]
显示目录

迭代器与生成器



Python3 迭代器与生成器


迭代器

迭代是Python最强大的功能之一,是访问集合元素的一种方式。。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

字符串,列表或元组对象都可用于创建迭代器:

>>> list=[1,2,3,4]
>>> it = iter(list)    # 创建迭代器对象
>>> print (next(it))   # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>

迭代器对象可以使用常规for语句进行遍历:

#!/usr/bin/python3

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
for x in it:
    print (x, end=" ")

执行以上程序,输出结果如下:

1 2 3 4

也可以使用 next() 函数:

#!/usr/bin/python3

import sys         # 引入 sys 模块

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象

while True:
    try:
        print (next(it))
    except StopIteration:
        sys.exit()

执行以上程序,输出结果如下:

1
2
3
4

生成器

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

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行 next()方法时从当前位置继续运行。

以下实例使用 yield 实现斐波那契数列:

#!/usr/bin/python3

import sys

def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成

while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()

执行以上程序,输出结果如下:

0 1 1 2 3 5 8 13 21 34 55
由JSRUN为你提供的Python在线运行、在线编译工具
        JSRUN提供的Python 在线运行,Python 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。