迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中使用循环列表

作者:迹忆客 最近更新:2023/04/25 浏览次数:

常规链表有一个根节点,其中每个节点都有一个指向下一个节点的指针和一段数据,除了最后一个节点,没有下一个节点(因此保存 Null 值)告诉我们这是最后一个节点 . 但是,在循环链表中,最后一个节点有一个指向链表中第一个节点的指针。

因此,循环链表是结构化的链表,使得所述结构内的所有节点形成一个圆圈。 这种节点不能为None的线性动态数据结构; 最后一个节点连接到第一个节点,因此每个节点都可以通向前一个或下一个,等等。

通常,迭代器对象允许我们在列表或字典数据结构中从一个元素移动到另一个元素。 使用循环列表,每个节点之间的连接允许使用内置函数。

本文讨论在 Python 中以原生方式或使用模块实现和使用循环列表。


使用 itertools.cycle 在 Python 中使用循环列表

Python 有一个名为 itertools 的内置模块,它支持带有迭代器和函数循环的序列。 在这个模块中,迭代器(方法)帮助制定高效的系统来循环不同的上下文,从短输入序列到组合场景。

然而,更重要的是使用 cycle() 迭代器,它是一个无限迭代器,它接受一个列表并对其进行无限迭代。

这是通过创建一个迭代器来实现的,该迭代器返回其元素并从可迭代对象中复制每个元素。 之后,它在可迭代完成后返回保存的副本中的项目。

要使用模块 itertools 和方法 cycle() ,我们使用这个导入语句:

from itertools import cycle

从这里我们所要做的就是将一个列表传递给 cycle() 方法,我们就有了一个循环链表。 此外,我们可以使用内置函数 next() 来访问并返回迭代器的下一个元素或节点,即循环链表。

from itertools import cycle

numList = ['one', 'two', 'three', 'four', 'five']

circularList = cycle(numList)

print(next(circularList))
print(next(circularList))

输出:

one
two

因此,使用 next() 方法,我们可以轻松地逐个推进迭代器,而不是使用永远循环的 for 循环。

from itertools import cycle

numList = ['one', 'two', 'three', 'four', 'five']

circularList = cycle(numList)

for num in circularList:
    print(num)

输出:

one
two
three
four
five
one
two
three
four

使用生成器在 Python 中使用循环列表

使用生成器,我们可以创建迭代和函数,这些迭代和函数返回一个我们可以迭代的迭代器。 与我们使用 return 语句的典型函数不同,我们在生成器中使用 yield 语句。

与 return 语句不同,yield 语句暂停函数,保存其所有环境变量(或状态),并在随后的调用中携带一个。 此外,一个生成器函数可以包含一个 return 语句和多个 yield 语句。

要创建循环列表,我们可以使用 yield 语句来保存函数的状态并等待后续调用。

def circular(args):
    while True:
        for element in args:
            yield element

numList = ['one', 'two', 'three', 'four', 'five']

circularList = circular(numList)
print(circularList)

输出:

<generator object circular at 0x0000018AFFD39A10>

使用名为 circular() 的生成器函数,我们可以向它传递一个可迭代的参数。 它使用 while True 语句永远循环,但可以暂停函数以返回当前状态(这意味着它所在的当前元素或节点)并在进行另一个调用时继续。

这有助于我们创建一个循环列表。

您可以使用 next() 方法检索循环列表中的下一个元素。

def circular(args):
    while True:
        for element in args:
            yield element

numList = ['one', 'two', 'three', 'four', 'five']

circularList = circular(numList)

print(next(circularList))
print(next(circularList))

输出:

one
two

或者无限循环。

def circular(args):
    while True:
        for element in args:
            yield element

numList = ['one', 'two', 'three', 'four', 'five']

circularList = circular(numList)

for i in circularList:
    print(i)

输出:

one
two
three
four
five
one
two

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便