Orange() 与 range() 和 xrange() 有什么不同?

2024-01-09

当我遇到这个时,我正在浏览 Python Generators Wiki范围发生器 https://wiki.python.org/moin/RangeGenerator谈论的页面irange() -

这将使我们能够对大范围的数字进行迭代,而无需 求助于 xrange,它是一个惰性列表,而不是生成器。

我似乎无法理解该页面上描述的测试套件和实现。我知道range()在内存中创建一个列表(从Python 2.7的角度来看)并且xrange()是一个发电机。怎么irange()有什么不同吗?


irange()返回一个生成器类型,其中只能迭代。没有其他的。一旦迭代它,生成器就会耗尽并且无法再次迭代。

蟒蛇2xrange() type https://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange和Python 3range() type https://docs.python.org/3/library/stdtypes.html#ranges are 序列类型,它们支持其他序列也支持的各种操作,例如报告其长度、包含测试和索引:

>>> xr = xrange(10, 20, 3)
>>> len(xr)
4
>>> 10 in xr
True
>>> xr[0]
10
>>> xr[1]
13

您可以多次迭代这些对象:

>>> for i in xr:
...     print i,
... 
10 13 16 19
>>> for i in xr:
...     print i,
... 
10 13 16 19

您甚至可以使用reversed()功能 https://docs.python.org/2/library/functions.html#reversed迭代它们相反, 有效率的:

>>> for i in reversed(xr):
...     print i,
... 
19 16 13 10

蟒蛇3range()类型是一个改进版本xrange(),因为它支持更多的序列操作,效率更高,并且可以处理超出范围的值sys.maxint(什么是longPython 中的整数 2)。

例如,它支持切片,这会导致new range()切片值的对象:

>>> r = range(10, 20, 3)
>>> r[:2]
range(10, 16, 3)

您可以像使用其他 Python 序列一样使用负索引来获取从末尾开始计数的元素:

>>> r[-2]
16
>>> r[-2:]
range(16, 22, 3)

并且该类型支持相等性测试;二range()如果实例产生相同的值,则它们是相等的:

>>> range(10, 20, 3) == range(10, 21, 3)
True

在Python 2中,生成器的唯一优势irange()可能有的是它不受非长整数的限制xrange()受到:

>>> import sys
>>> xrange(sys.maxint)
xrange(9223372036854775807)
>>> xrange(sys.maxint + 1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C long
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Orange() 与 range() 和 xrange() 有什么不同? 的相关文章

  • Python:使用 string.format() 将单词大写

    是否可以使用字符串格式将单词大写 例如 user did such and such format user foobar 应该返回 Foobar 做了这样那样的事情 请注意 我很清楚 capitalize 但是 这是我正在使用的代码 非常
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • 在 pandas 中单独打印一列的原始值?

    我有一个数据框 df pd DataFrame name george age 23 name anna age 26 现在我想检索乔治的年龄 df df name george age 但这会输出一些额外的信息以及原始值 0 23 Nam
  • pandas Wide_to_long 后缀参数

    我对在 pandas 中使用 Wide to long 时的参数有疑问 有一个参数叫suffix我不明白 在文档中它说 后缀 str 默认 d 捕获所需后缀的正则表达式 d 捕获数字后缀 没有数字的后缀可以用否定字符类 D 指定 您还可以进
  • Python GTK + webkit - 在 gtk.main() 之后插入 JavaScript

    我在终端中尝试了这个 一切正常 但是如果我在脚本内运行这个 我无法在 gtk main 之后插入 JavaScript import gtk import webkit w gtk Window b webkit WebView w add
  • 以矢量化方式在另一个 DataFrame 中查找包含值子集的行

    如何匹配此 DataFrame 中的值source car id lat lon 0 100 10 0 15 0 1 100 12 0 10 0 2 100 09 0 08 0 3 110 23 0 12 0 4 110 18 0 32 0
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • Pandas 连接问题:列重叠但未指定后缀

    我有以下数据框 print df a mukey DI PI 0 100000 35 14 1 1000005 44 14 2 1000006 44 14 3 1000007 43 13 4 1000008 43 13 print df b
  • Python——捕获异常的效率[重复]

    这个问题在这里已经有答案了 可能的重复 Python 常见问题解答 异常有多快 https stackoverflow com questions 8107695 python faq how fast are exceptions 我记得
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 在 iPython/pandas 中绘制多条线会生成多个图

    我试图了解 matplotlib 的状态机模型 但在尝试在单个图上绘制多条线时遇到错误 据我了解 以下代码应该生成包含两行的单个图 import pandas as pd import pandas io data as web aapl
  • Jupyter Notebook 中的深色模式绘图 - Python

    我正在使用 Jupyter Notebook 目前正在使用 JupyterThemes 的深色日光主题 我注意到我的绘图不是处于黑暗模式 并且文本仍然是黑色并且在日光照射的背景上无法读取 JupyterThemes 的自述文件建议在 ipy
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 更换壳牌管道[重复]

    这个问题在这里已经有答案了 在 subprocess 模块的 Python 2 7 文档中 我找到了以下片段 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdo
  • 在 matplotlib 中绘制多边形的并集[重复]

    这个问题在这里已经有答案了 我正在尝试绘制几个多边形的并集matplotlib 具有一定的 alpha 水平 我当前的代码在交叉点处颜色较深 有没有办法让交叉路口与其他地方的颜色相同 import matplotlib pyplot as
  • 如何使用 Pandas Series 绘制两个不同长度/开始日期的时间序列?

    我正在绘制 每周总事件 的几个熊猫系列对象 系列中的数据events per week看起来像这样 Datetime 1995 10 09 45 1995 10 16 63 1995 10 23 83 1995 10 30 91 1995
  • 如何更改matplotlib中双头注释的头大小?

    Below figure shows the plot of which arrow head is very small 我尝试了下面的代码 但它不起作用 它说 引发 AttributeError 未知属性 s k 属性错误 未知属性头宽
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in

随机推荐

  • 如何使用 ng2-chart 创建数据标签?

    好吧 我再次遇到了 Angular 和 javascript 问题 对于我提出的每个问题都感觉自己很愚蠢 但让我尝试解释一下我最初的步骤以及它如何导致这个问题 因此 在我最新的项目中 我想添加一些精美的图表 让事情变得更清晰 更易于用户使用
  • 使用 Storyboard 自定义 UITableViewCell

    我正在尝试使用故事板制作自定义单元 我已经用基本单元测试了我的程序并且它有效 现在我创建了一个名为 NewsCell 的新类 它包含自定义单元格中的不同标签 我还将该单元设为 NewsCell 的子类 小区标识符是 NewsCell 这是
  • 有没有办法将 Knuth shuffle 应用于 Stack 数据结构?

    对于编程课 我正在为第一个家庭作业创建一个二十一点程序 教授给了我们一个示例 Card 类 其中包括将它们添加到牌组中的方法 对于她的牌组 她使用 ArrayList 您可以使用 Collections shuffle 方法轻松地进行 Kn
  • 尝试了解/改善云功能冷启动的原因

    我正在使用 firebase 云功能 在撰写本文时 我正在了解其最新的依赖项和节点版本 engines node 10 dependencies firebase admin 8 11 0 firebase functions 3 6 1
  • 获取prolog中的所有列表集合

    如何生成当前长度的列表元素的所有可能集合 get set X 1 2 3 X 1 1 1 X 1 1 2 X 1 1 3 X 1 2 1 X 1 2 2 X 1 2 3 X 1 3 1 X 1 3 2 X 1 3 3 X 3 3 2 X 3
  • 在Python中动态访问类实例“名称”

    用简单的英语来说 我在 for 循环中动态创建类实例 然后该类为实例定义一些属性 我稍后需要能够在另一个 for 循环中查找这些值 示例代码 class A def init self name attr self name name se
  • Docker-django 在连接到 postgres 时抛出错误:psycopg2.OperationalError:无法连接到服务器:连接被拒绝

    我正在尝试 dockerize 我的 Django postgres 应用程序 我的 Dockerfile 是 FROM python 3 ENV PYTHONUNBUFFERED 1 RUN mkdir code WORKDIR code
  • 如何在其他形式上设置字典值?

    我是 C 初学者 我遇到了如下问题 但我不确定是什么原因导致的或如何修复它 有经验的码农请帮忙 我有一个Dictionary在 Form1 中 但我想从 Form2 设置它的值 然而 赋值后 MessageBox结果仍然显示0 Form1
  • pthread_mutex_lock是否包含内存栅栏指令? [复制]

    这个问题在这里已经有答案了 Do pthread 互斥锁 and pthread mutex unlock函数调用内存栅栏 屏障指令 或者执行较低级别的说明 例如比较和交换内隐性有记忆障碍吗 pthread mutex lock 和 pth
  • 如何指定 Log4J 2.x 配置位置?

    有没有办法指定Log4J 2 xlog4j2 xml手动定位文件位置 例如DOMConfigurator在 Log4J 1 x 中 而不弄乱类路径和系统属性 您可以使用静态方法 initialize String contextName C
  • Div 背景图像或使用 IMG 标签

    我想知道 使用带有 IMG 标签的图像或用作 DIV 背景有什么区别吗 它会影响网站性能 Google 搜索等吗 没有真正的性能差异或 SEO 差异 尽管我认为img元素与alt指定的属性对于 SEO 来说可能比背景图像稍微好一点 只是因为
  • 我可以为不同的月份涂上颜色吗?

    我的数据有一个日期时间索引 我对数据进行了重新采样 并希望将其可视化 以便不同的月份都有不同的颜色 这是我的数据 Time Count 2016 08 07 88 2016 08 14 95 2016 08 21 86 2016 08 28
  • C# 反序列化已移动或重命名的类

    如果我在名为 AssemblyA 的程序集中有一个名为 MyClass 的类 并使用 NET 的 BinaryFormatter 将其序列化为文件 然后将 MyClass 的代码移动到名为 AssemblyB 的程序集中 并尝试反序列化该文
  • Node.js JSON 解析错误

    我正在尝试使用 node js 制作 Facebook 应用程序 但是在检查签名请求时遇到问题 每次我发出请求时 程序都会抛出一个语法错误 意外的标记非法像这样 undefined 1 721599476 SyntaxError Unexp
  • Android - 如何在 ListView 或 ExpandableListView 中设置 TextView 的填充

    我需要设置填充TextView在每一行ListView or ExpandableListView 我尝试使用android padding和孩子 paddingLeft 但没有任何结果 我能怎么做 谢谢 EDIT 这是该项目的代码Expa
  • 对象无效作为 React 子反应错误?

    你能告诉我为什么我收到这个错误吗 对象作为 React 子对象无效 发现 带有键的对象 seo val text val 如果你想渲染一组孩子 使用数组代替 我正在尝试击中http请求并尝试制作下拉菜单 import React from
  • 如果a>=b 那么O(a+b)=O(a)?

    我试图更好地理解这个想法O n 所以我对此感到好奇 如果我们知道 a gt b 那么O a b O a 我知道O a O a O 2a O a 但我想知道对于比 a 小的东西是否正确 我的意思是 如果O a b O a 我认为这是真的 因为
  • 使用 Perl 从文件中读取部分

    我正在尝试从 Perl 中的输入文件读取值 输入文件如下所示 1 sampledata1 This is a sample test and data for this continues 2 sampledata2 This is sam
  • 如果我在商业网页中添加微软雅黑粗体字体,是否会与微软产生版权问题? (使用CSS3)

    如果我添加以下内容 我会遇到 Microsoft 的版权问题吗 font face我的商业网页中的 CSS3 属性 字体为 Microsoft YaHei Bold Windows Vista 的 Cleartype 中文字体 看来还是小心
  • Orange() 与 range() 和 xrange() 有什么不同?

    当我遇到这个时 我正在浏览 Python Generators Wiki范围发生器 https wiki python org moin RangeGenerator谈论的页面irange 这将使我们能够对大范围的数字进行迭代 而无需 求助