- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 0 迭代到 sys.maxint 但出现“MemoryError”。我应该怎么做?
这是简单的代码片段。
for i in range(sys.maxint):
a = 1
错误:回溯(最后一次调用): 文件“”,第 1 行,位于内存错误
最佳答案
在 Python 2 中,range 关键字构造一个列表,其中包含您指定范围内的所有数字。所以如果你想创建一个最大 2**31-1
的范围,它必须为 4*(2**31-1)
字节分配空间(大约8.5 GB)。您可能没有那么多内存。
2**31-1
假定您使用的是 32 位 python。对于 64 位 python,maxint 是 2**63-1
。您绝对没有那么多 ram(8*(2**63-1)
= 大约 7300 万 Tb)。
如果你想在 Python 2 中遍历一组数字并且不想提前构建这些数字的完整列表(从而使用那么多 ram),你可以使用 xrange
而不是 range
。语义相同,但它返回惰性迭代器而不是列表。
即使你确实使用了xrange
,它仍然需要很长时间才能计数到2**63-1
,但这是一个不同的问题,可能无关紧要如果您计划早于此打破 for 循环。请在应用程序开发期间注意这一点。
最后注意,在 Python 3 中,xrange
没有了,range
是构造惰性迭代器的函数。要在 Python 2 中获得与 range
等效的内容,您可以执行 list(range(v))
关于python - 如何在 Python 中使用 for 循环从 0 迭代到 sys.maxint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32801538/
为什么 sys.maxint < (sys.maxint - 100 + 0.01) 在 Python 中? 最佳答案 这可能是由于非常大的浮点值的精度损失。 (添加 0.01 将右侧转换为 floa
非常不言自明(我在 Windows 上): >>> import sys, numpy >>> a = numpy.int_(sys.maxint) >>> int(a).__class__ >>>
我有一个项目组,其中所有 Win32 程序都具有相同的 ..\PatchLibs 搜索路径。此文件夹包含已修补的 System.Win.Ctrl.pas,其中包含: {$IFDEF WIN32} fu
情况 在处理 coding kata 之后我终于得到了适用于我的小测试用例的算法。 才发现它没有大规模工作,时间不是问题,但数字的大小是问题。 在其中一个测试用例的计算中,我需要执行以下计算。 var
在尝试打印对象的 retainCount 后,我得到 2147483647。为什么会得到这样的结果?应该是 1,不是吗? NSString *myStr = [NSString new]; NSU
我有一些代码可以将一些存储为字符串的时间戳转换为日期时间对象,并且今天注意到当它转换具有大于最大 int 的 int 时间戳值的日期时出现异常。 datetime.datetime.fromtimes
定义最大整数变量时出现错误: overflow in expression; result is 2147483647 with type 'int' [-Winteger-overflow] 代码中
据我所知,十进制和十六进制只是(比方说)int 的表示。 这意味着如果我定义一个整数 x 我应该能够将 x 打印为: 一个小数:printf("%d", x); 十六进制:printf("%x", x
我正在尝试使用 Python 3.7 运行以下代码: import sys print(sys.maxint) 但是我得到一个错误: D:\Python3.7\python.exe "D:/PyCha
我正在使用 Eventlog.Entries (c# .NET 4.0) 读取应用程序事件日志以获取 EventLogEntry 对象并使用它们进行处理。当新事件写入事件日志时,EventLogEnt
我一直在尝试找出如何表示最大整数,并且我已经阅读过使用 "sys.maxint"。但是,在 Python 3 中,当我调用它时,我得到: AttributeError: module 'object'
我在一个 2.5gb 的文件中迭代超过 80m 行,以创建每行开始位置的偏移量列表。内存按预期缓慢增加,直到我达到 40m 行左右,然后在 3-5 秒内迅速增加 1.5gb,然后由于内存不足导致进程退
我对系统架构不是很了解,刚刚开始学习Python。 在一个教程视频中提到,在解释器中运行 sys.maxint 将返回可用的最大整数。 还提到2147483647是对应32位系统的整数。这是我运行 s
我正在尝试从 0 迭代到 sys.maxint 但出现“MemoryError”。我应该怎么做? 这是简单的代码片段。 for i in range(sys.maxint): a = 1 错误:回
在 64 位 Debian Linux 6 上: Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) [GCC 4.4.5] on linux2 Type
例如,SQL Server 会警告您还是直接死掉? 最佳答案 当 IDENTITY 列溢出时,SQL Server 2005 将抛出以下错误。 Server: Msg 8115, Level 16,
我是一名优秀的程序员,十分优秀!