【发布时间】:2015-01-20 23:10:35
【问题描述】:
如何使用 Python 将数字 123456789 拆分为 [1,2,3,4,5,6,7,8,9]?
【问题讨论】:
标签: python python-2.7 split
如何使用 Python 将数字 123456789 拆分为 [1,2,3,4,5,6,7,8,9]?
【问题讨论】:
标签: python python-2.7 split
【讨论】:
int = 'number'?
str。 phighter 可以通过打印出来检查:print(str) 应该给 <type 'str'> 和 print(int) 应该给 <type 'int'>。
map 似乎在 Python 3.x 中返回了一个生成器
您可以将数字转换为字符串,然后进行列表推导 -
>>>[int(digit) for digit in str(123456789)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
【讨论】:
你也可以不把你的号码变成这样的字符串:
def splitNum(n):
if n < 10
return [n]
else:
return splitNum(n // 10) + [n % 10]
此方法使用递归,但您也可以不使用递归
def splitNum(n):
digits = []
while n > 0:
digits.insert(0, n % 10) # add ones digit to front of digits
n = n // 10
return digits
两者都使用以下事实:
x // 10,由于整数除法,“砍掉”个位数,即1234 // 10 是123
x % 10 是那个数字,即1234 % 10 是4
【讨论】:
from __future__ import division。如果已启用,则需要使用 // 运算符进行整数截断。
使用Python中内置的list函数如下:
a = 123456789
p = str(a)
li = list(p)
s = []
for e in li:
a = int(e)
s.append(a)
print s
来自文档:
list(iterable) -> new list initialized from iterable's items
编辑:
由于list() 方法返回一个仅包含字符串元素的列表,我创建了一个空列表s,然后使用 for 循环遍历每个字符串元素,将每个元素转换为整数,然后然后将这些元素附加到空列表s中。
【讨论】:
int 的列表怎么办?