您如何使用Python将数字123456789
拆分为[1,2,3,4,5,6,7,8,9]
?
答案 0 :(得分:7)
一种方法是先将数字转换为字符串,然后将每个字符数字映射回整数:
>>> map(int, str(123456789))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
执行以下操作:
答案 1 :(得分:4)
您可以将数字转换为字符串,然后执行列表推导 -
>>>[int(digit) for digit in str(123456789)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
答案 2 :(得分:4)
您也可以在不将数字转换为字符串的情况下执行此操作:
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
答案 3 :(得分:0)
以下列方式在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
中附加这些元素。