Python中13位数字的range和xrange?
range()
和 xrange()
这两个函数可以处理10位数的数字。那么对于13位数的数字呢?我在论坛里没找到相关的信息。
9 个回答
6
6
创建这个范围没有问题,只要你不想要10的13次方那么多的元素,比如:
range(10**14,10**15,10**14)
这样就会得到
[100000000000000, 200000000000000, 300000000000000, 400000000000000, 500000000000000, 600000000000000, 700000000000000, 800000000000000, 900000000000000]
12
你可以试试这个。它和范围(range)的用法是一样的:
import operator
def lrange(num1, num2 = None, step = 1):
op = operator.__lt__
if num2 is None:
num1, num2 = 0, num1
if num2 < num1:
if step > 0:
num1 = num2
op = operator.__gt__
elif step < 0:
num1 = num2
while op(num1, num2):
yield num1
num1 += step
>>> list(lrange(138264128374162347812634134, 138264128374162347812634140))
[138264128374162347812634134L, 138264128374162347812634135L, 138264128374162347812634136L, 138264128374162347812634137L, 138264128374162347812634138L, 138264128374162347812634139L]
另外一个解决方案是使用 itertools.islice
,这个在 xrange
的 文档 中有提到。