Tem*_*lar 2 python arrays numbers list digits
我想将数字分成数字并将它们保存在python中的列表(或数组)中.首先我应该创建列表
dig = [0 for i in range(10)]
Run Code Online (Sandbox Code Playgroud)
然后
i = 0
while num > 9:
dig[i] = num % 10
i += 1
num /= 10
dig[i] = num
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢只为10个空格创建列表,是否可以在不重复循环的情况下获得数字长度
i = 0
num2 = num
while num2 > 9:
num2 /= 10
i += 1
i += 1
Run Code Online (Sandbox Code Playgroud)
然后重复第一部分代码?或者只是按照我的第一名制作?我不知道确切的数字长度,但不会很长
所以任何建议?也许你知道更好的方法将数字分成数字,或者其他东西.
agf*_*agf 10
由于您只是按顺序添加从最小到最大的数字,只需使用空列表:
dig = []
i = 0
while num > 9:
dig.append(num % 10)
i += 1
num /= 10
dig.append(num)
Run Code Online (Sandbox Code Playgroud)
或者,就这样做
dig = list(int(d) for d in str(num))
Run Code Online (Sandbox Code Playgroud)
这将转即123到'123',然后把每个数字回了一些,并把它们放入一个列表,从而导致[1, 2, 3].
如果您希望它与版本的顺序相同,请使用
dig = reversed(int(d) for d in str(num))
Run Code Online (Sandbox Code Playgroud)
如果你真的只想得到一个数字的长度,最简单的做法len(str(num))是把它变成一个字符串然后得到长度.
假设num是一个正整数,则位数等于int(math.log10(num) + 1).
但比这更是只使用append的方法list-那么你就不必知道长度提前.
更容易(虽然列表将以相反的顺序):
dig = [int(x) for x in str(num)]
Run Code Online (Sandbox Code Playgroud)
要么
dig = map(int, str(num))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6456 次 |
| 最近记录: |