我想用一个很长的数字分开的数字来计算。如何在Python2.7中做到这一点?我考虑过以某种方式将数字写入数组,以便可以使用array(x)访问数字:
number = 123456789123456789 array = [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]
问题在于,该数字有很多位数,因此手动进行将花费很长时间。那么我如何自动执行此操作?
您可以使用map,int而且str功能喜欢这个
map
int
str
print map(int, str(number))
str函数将转换number为字符串。
number
map函数将函数应用于int字符串化数字的每个元素,以将字符串转换为整数。
输出量
[1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]
如果您在一个循环中一次又一次地这样做,像,然后列表的理解会比更快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