我想把数字分成几个数字,然后用python将它们保存在list(或array)中。所以首先我应该创建如下列表
dig = [0 for i in range(10)]
然后
i = 0
while num > 9:
dig[i] = num % 10
i += 1
num /= 10
dig[i] = num
但我真的不喜欢只为10个空格创建列表,是否可以不重复循环就得到数字的长度
i = 0
num2 = num
while num2 > 9:
num2 /= 10
i += 1
i += 1
然后重复代码的第一部分?还是像我当初做的那样?我不知道数字的确切长度,但不会很长
有什么建议吗?也许你知道更好的方法把数字分成数字,或者别的什么。
假设
num
是正整数,则位数等于int(math.log10(num) + 1)
。但最好的方法是使用
append
的list
方法,这样就不必事先知道长度。更简单(尽管列表将按相反的顺序排列):
或者
因为您只是按顺序从最小到最大添加数字,所以请使用空列表:
或者,就这样做
它将把
123
转换成'123'
,然后将每个数字转换成一个数字并将它们放入一个列表中,从而产生[1, 2, 3]
。如果您希望它与您的版本顺序相同,请使用
如果你真的只想得到一个数字的长度,那么最简单的方法是
len(str(num))
将它转换成一个字符串,然后得到长度。尽管人们常说
map
不通俗,但这项任务绝对是为了它:相关问题 更多 >
编程相关推荐