将数字的位数写入数组

2024-05-19 08:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一个很长的数的分开的数字来计算。我如何在Python2.7中做到这一点?我想把数字写在数组中,这样我就可以用数组(x)访问数字:

number = 123456789123456789
array = [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]

问题是,这个数字有太多的数字,手工操作要花很长时间。那我怎么能自动完成呢?在


Tags: number数字数组array手工操作
3条回答

你也可以使用列表理解链接这个。在

array = [int(x) for x in str(number)]

您可以像这样使用^{}^{}^{}函数

print map(int, str(number))

str函数将number转换为字符串。在

map函数将int函数应用于stringifed number的每个元素,以将字符串转换为整数。在

输出

^{pr2}$

如果您一次又一次地这样做,比如在循环中,那么列表理解将比map方法更快

number = 123456789123456789
from timeit import timeit
print timeit("map(int, str(number))", "from __main__ import number")
print timeit("[int(dig) for dig in str(number)]", "from __main__ import number")

在我的机器上输出

12.8388962786
10.7739010307

作为一种选择,纯数学解如下。通过反复除以10并取余数,可以提取每个数字。在

n = 123456789123456789
result = []
while n != 0:
    n, d = divmod(n, 10)
    result.append(int(d))
result.reverse()
print result # [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]

相关问题 更多 >

    热门问题