for 循环如何评估其参数

2024-05-29

我的问题很简单。

Does a for循环评估它每次使用的参数?

Such as:

for i in range(300):

python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表?

如果是的话,这是避免这种情况的方法吗?

lst = range(300)
for i in lst:
    #loop body

像这样的代码示例也是如此。

for i in reversed(lst):

for k in range(len(lst)):

是每次都应用相反的过程,还是每次迭代时计算长度? (我对 python2 和 python3 都要求这个)

如果不是,Python 在迭代可迭代对象时如何评估它的变化?


不用担心,迭代器只会被评估一次。它最终大致相当于这样的代码:

it = iter(range(300))
while True:
    try:
        i = next(it)
    except StopIteration:
        break
    ... body of loop ...

请注意,这不是quite等价,因为break会有不同的工作方式。请记住,您可以添加else to a for循环,但这在上面的代码中不起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

for 循环如何评估其参数 的相关文章

随机推荐

  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi
  • LINQ 对特定属性的 Distinct()

    我正在玩 LINQ 来了解它 但我不知道如何使用Distinct https learn microsoft com en us dotnet api system linq enumerable distinct当我没有一个简单的列表时
  • 如何围绕指定的锚点以 2D 方式旋转容器小部件?

    我想对容器小部件 包含一些其他小部件 执行非常简单的 2D 旋转 该小部件将围绕中心的单个固定点旋转 不会变形 我尝试使用transform财产与Matrix4 rotationZ 这有点起作用 但锚点在top left角落 不在cente
  • 使用 Symfony 时如何处理连接表中的附加列?

    假设我的 Symfony2 包中有两个实体 User and Group 通过多对多关系关联 USER USER GROUP REL GROUP id user id id
  • Laravel 社交名流:始终获取默认头像

    我允许用户使用 Scialite 注册 仍在启用 openSSL 的 Laravel homestead 上本地工作 它与 FB 配合得很好 除了头像它总是获得默认图像 我正在使用创建应用程序的同一 FB 帐户进行测试 FB 应用程序处于开
  • 在 Postman 中请求受 Azure AD B2C 保护的 Azure 函数应用程序的访问令牌

    我有一个由 Azure Active Directory B2C 租户保护的 AspNetCore 2 0 MVC Web API 我已经能够通过以下 SO 发布使用 Postman 来测试 API 端点 在 Postman 中请求 Azu
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • MVVM 焦点到文本框

    我如何将焦点集中在TextBox没有指定名称TextBox 目前我正在做以下事情
  • 如何使用 didMoveToView 作为 initWithSize ?

    我将 Xcode 更新到版本 6 从那时起 我就无法使用以前在 Xcode 5 中使用 Objective C 编写的代码了 有一些新文件 GameScene h 和 GameScene m 以及 GameScene sks 而不是 MyS
  • 警告:引用名称“xxx”不明确

    我想知道为什么我收到 refname is ambigeous 的警告 这是否意味着名称以该字符串开头的分支不超过两个 但这里没有 Thanks git checkout B03799 warning refname B03799 is a
  • 在android Gridview中合并行和列

    我正在android中做一个图像查看页面 我需要在某些地方合并行 在某些地方合并列 我们可以在gridview中做到这一点吗 如果我们选择任何合并图像 则应选择整个图像视图 请任何人告诉我一个建议 提前致谢 Try 非对称网格视图 http
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • 创建序列组合

    我正在尝试解决以下问题 考虑 5 个简单序列 0 100 100 0 rep 0 101 rep 50 101 rep 100 101 我需要 3 个数字变量的集合 它们的所有组合都具有上述序列 由于有 5 个序列和 3 个变量 因此可以有
  • 如何在 MySQL 中启用严格 sql_mode?

    我怎样才能启用严格sql mode在 MySQL 中 我想从 SQL 中获取数据并在中处理相同的数据strict mode 我现在的sql mode is mysql gt SELECT sql mode sql mode NO ENGIN
  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • C# 无法覆盖继承的成员

    我正在从一本名为 Chegwidden Gladdis 的书中学习 C 我正在制作与书中编写的相同的程序和相同的代码 但有一个问题 我无法重写父类中的方法 我从章节一开始就读完了这本书 读了五遍 一切都是一样的 但我不明白为什么我不能重写父
  • 设计和自定义 Rails 用户 URL

    我目前正在使用 Rails 3 2 5 和最新的 devise gem 目前用户可以访问他们的个人资料页面 example com users john doe 我想删除网址的用户部分 因此网址将是example com john doe
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra