如果重复使用范围结果,是否应该缓存它们?

2023-12-04

我对 python 比较陌生,我正在尝试针对 HackerRank 问题优化一些代码。我发现使用很奇怪range(即生成列表?)比仅使用更快while使用单个变量循环进行迭代。

我想知道缓存结果是否更快range如果我稍后在代码中迭代相同的序列,则函数。例如:


这是更快吗:

ten = 10
zeroToTen = range(ten)

sum = 0
for x in zeroToTen:
    sum += x

product = 1
for y in zeroToTen:
    product *= y

或者我应该回忆一下range每一次:

ten = 10

sum = 0
for x in range(10):
    sum += x

product = 1
for y in range(10):
    product *= y

在Python 3中,range是一个发电机。这意味着它将产生序列的所有数字。这是简单的添加。

您可以将其缓存在list: cache = list(range(10))但这会分配一些内存并且需要对其进行迭代:效率不高!

顺便说一句:第一个示例不缓存结果,您只需复制生成器函数。您可能会节省几微秒的解析时间(因为该函数已经解析,并不值得)

所以,不,缓存结果是没有用的range在 python 3 中(在 python 2 中,它会很有用,是的,因为它创建了一个实际的list).

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

如果重复使用范围结果,是否应该缓存它们? 的相关文章

  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • 在 Python distutils 中从 setup.py 查找脚本目录的正确方法?

    我正在分发一个具有以下结构的包 mymodule mymodule init py mymodule code py scripts script1 py scripts script2 py The mymodule的子目录mymodul
  • 如何在 Ubuntu 16.04 上的 Python 3 / Matplotlib 2 中安装底图?

    I tried pip3 install basemap but Basemap https sourceforge net projects matplotlib files matplotlib toolkits 好像不在 PyPI 上
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 默认情况下,Keras 自定义层参数是不可训练的吗?

    我在 Keras 中构建了一个简单的自定义层 并惊讶地发现参数默认情况下未设置为可训练 我可以通过显式设置可训练属性来使其工作 我无法通过查看文档或代码来解释为什么会这样 这是应该的样子还是我做错了什么导致默认情况下参数不可训练 代码 im
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1

随机推荐

  • 如何修复 XSLT 中的“样式表编译期间报告错误”?

    当我运行 XSLT 代码时出现此 SaxonApiExceptionhttps xslttest appspot com 它返回此错误 net sf saxon s9api SaxonApiException 样式表编译期间报告错误 我尝试
  • 使用 Netcat 将二进制文件(逐行)发送到套接字服务器

    作为分拆这个堆栈溢出问题除了一些调整之外 我想实现相同的目标 我想连接到主机 逐行发送二进制文件 并在每行之间有几秒钟的延迟 并且它必须位于同一连接中 我想要发送的字符串主要是基于文本的 但该行中有一些不可打印的字符 这是我要发送的字符串
  • 在 Delphi 中实施变更日志

    我正在寻求使用改变日记代替ReadDirectoryChangesW跟踪我的delphi XE2应用程序中的更改 至于为什么 ReadDirectoryChangesW 不太可靠 我在delphi pascal中能找到的最接近的是一个叫做D
  • 反应式表单 - 禁用属性

    我正在尝试使用disabled属性来自于formControl 当我将其放入模板中时 它会起作用
  • perl 文件大小计算不起作用

    我正在尝试编写一个简单的 perl 脚本 它将迭代目录中的常规文件并计算所有文件放在一起的总大小 但是 我无法获取文件的实际大小 而且我不明白为什么 这是代码的相关部分 我放入打印语句进行调试 totalsize 0 while readd
  • CSS 2 div大小自动相同高度

    我有一个 CSS 问题 我怎样才能做到这一点 当绿色 div 的内容高度 自动 为 500px 时 红色 div 的高度相同 当红色的内容高度 自动 为 700px 时 绿色的高度也相同 两者都有任何内容 然后我使用自动高度 那么我怎样才能
  • Java 异常作为已检查异常但不需要在 trycatch 中抛出

    我有这个片段 public final class StackOverflow class MyException extends Throwable private void a try catch MyException Excepti
  • PHP Scandir 返回额外的句点

    所以我试图构建一个脚本来扫描目录并返回随机图像用作背景 php 看起来像这样 dir views img bg dh opendir dir while false filename readdir dh files filename ra
  • 无法将shared_ptr作为shared_ptr引用传递

    在下面的代码中 我想通过shared ptr
  • Java相当于python“dir”?

    java中的python中是否有相当于 dir 的东西 或者提供类似功能的库 即对象和类的属性输出为信息字符串 这个问题与此类似question对于 clojure 来说 可能与 Java Reflection 有关 如下所示questio
  • Django Rest Framework:动态返回字段的子集

    Problem 正如博文中推荐的那样设计实用的 RESTful API 的最佳实践 我想添加一个fields查询参数传递给基于 Django Rest Framework 的 API 该 API 使用户能够仅选择每个资源的字段子集 Exam
  • Alamofire http json 请求块 ui

    我一直在创建一个从 JSON 脚本检索对象的函数 我选择使用 alamofire 进行异步请求 使用 swiftyJSON 进行轻松解析 但是我似乎有一个问题 它阻止了用户界面 当它是异步请求时 为什么会这样做 我是否需要在单独的线程上运行
  • 在c# winform中通过TabIndex获取元素的文本

    如何在 Windows 窗体中通过 TabIndex 获取元素的文本 像这样 this Controls GetElementByTabindex 1 text 是否可以 是的 可以用LINQ var text this Controls
  • 为什么需要 RTTI?

    为什么需要 RTTI 运行时类型信息 RTTI 运行时类型信息 引入了 C 的 温和 反射形式 例如 它允许了解超类的类型 从而允许处理全部派生自同一基类型的异构对象集合 以特定于各个超类的方式 假设您有一个 车辆 对象数组 并且需要以不同
  • 如何防止在按 R.Alt+ 键时激活 Ctrl+Alt+ 键绑定?

    I have one very annoying issue with Eclipse under Windows The key bindings for Ctrl Alt key are activated when I press R
  • 包含 3 个表的复杂 IF 语句

    这是一个延续这个问题是昨天的 这是我的三张表 战士表 fighter id name 1 John 2 Steve 3 Bill 4 Bobby 活动表 event id event name event date 1 MMA 01 01
  • SQL 语句所有可能的第一个单词是什么?

    我正在构建一个用户界面 以便能够在 SQL Server 数据库上执行 SQL 语句 兼容 SQL Server 2008 R2 我需要能够确定每个语句是否可能返回数据集 或者是否只需要执行 在德尔福 TADOQuery由以下任一组成Ope
  • 链式方法调用不适用于原始元素或克隆元素,为什么?

    我有以下 HTML
  • file_put_contents():此流不支持独占锁,Laravel Mac OS X

    我正在使用 mac os x Sierra 我安装了 laravel 并尝试解决错误 但无法成功 任何人都可以帮助我 我按照以下步骤操作 更改存储文件夹的权限 缓存清除 作曲家已更新 Mac OS X 塞拉利昂 将 Filesystem p
  • 如果重复使用范围结果,是否应该缓存它们?

    我对 python 比较陌生 我正在尝试针对 HackerRank 问题优化一些代码 我发现使用很奇怪range 即生成列表 比仅使用更快while使用单个变量循环进行迭代 我想知道缓存结果是否更快range如果我稍后在代码中迭代相同的序列