python:我可以扩展range()方法的上限吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python:我可以扩展range()方法的上限吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含879字,纯文字阅读大概需要2分钟。
内容图文
range()函数的上限是什么,我该如何扩展它,或者最好的方法是什么:
for i in range(1,600851475143):
解决方法:
range(1,600851475143)希望在内存中生成一个非常大的列表,并且会出现内存不足错误.要节省内存,请使用xrange而不是range.不幸的是,xrange不适用于大数(这是一个实现限制)示例(引发OverflowError):
for i in xrange(1, 600851475143):
print i
如果差异较小,则可以在区间中使用范围具有较大的最小值或最大值.例:
x = 1 << 200
print list(xrange(x, x + 3))
输出:
[1606938044258990275541962092341162602522202993782792835301376L, 1606938044258990275541962092341162602522202993782792835301377L, 1606938044258990275541962092341162602522202993782792835301378L]
原始for循环问题的奇特解决方案:
def bigrange(a, b = None):
if b is None:
b = a
a = 0
while a < b:
yield a
a += 1
for i in bigrange(1, 600851475143):
print i
一个不那么花哨的解决方案,即使你继续在循环体中也能工作:
i = 1 - 1
while i < 600851475143 - 1:
i += 1
print i
内容总结
以上是互联网集市为您收集整理的python:我可以扩展range()方法的上限吗?全部内容,希望文章能够帮你解决python:我可以扩展range()方法的上限吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。