integer
将 a 转换为 a的最快和最干净的方法是list
什么?
例如,更改132
为[1,3,2]
和。我有一个变量,它是一个,我希望能够比较各个数字,所以我认为将它变成一个列表是最好的,因为我可以轻松地将列表元素转换回 int 以进行数字操作。23
[2,3]
int
int(number[0])
int(number[1])
integer
将 a 转换为 a的最快和最干净的方法是list
什么?
例如,更改132
为[1,3,2]
和。我有一个变量,它是一个,我希望能够比较各个数字,所以我认为将它变成一个列表是最好的,因为我可以轻松地将列表元素转换回 int 以进行数字操作。23
[2,3]
int
int(number[0])
int(number[1])
先将整数转换为字符串,然后使用map
应用于int
其上:
>>> num = 132
>>> map(int, str(num)) #note, This will return a map object in python 3.
[1, 3, 2]
或使用列表理解:
>>> [int(x) for x in str(num)]
[1, 3, 2]
此页面上已经提到了一些很棒的方法,但是对于使用哪种方法似乎有点模糊。因此,我添加了一些测量,以便您可以更轻松地自己决定:
大量使用(用于开销)1111111111111122222222222222222333333333333333333333
map(int, str(num))
:import timeit
def method():
num = 1111111111111122222222222222222333333333333333333333
return map(int, str(num))
print(timeit.timeit("method()", setup="from __main__ import method", number=10000)
输出:0.018631496999999997
导入时间
def method():
num = 1111111111111122222222222222222333333333333333333333
return [int(x) for x in str(num)]
print(timeit.timeit("method()", setup="from __main__ import method", number=10000))
输出:0.28403817900000006
取自此答案的代码
结果表明,第一种涉及内置方法的方法比列表理解要快得多。
import timeit
def method():
q = 1111111111111122222222222222222333333333333333333333
ret = []
while q != 0:
q, r = divmod(q, 10) # Divide by 10, see the remainder
ret.insert(0, r) # The remainder is the first to the right digit
return ret
print(timeit.timeit("method()", setup="from __main__ import method", number=10000))
输出:0.38133582499999996
取自此答案的代码
list(str(123))
方法(不提供正确的输出):import timeit
def method():
return list(str(1111111111111122222222222222222333333333333333333333))
print(timeit.timeit("method()", setup="from __main__ import method", number=10000))
输出:0.028560138000000013
取自此答案的代码
import timeit
def method():
n = 1111111111111122222222222222222333333333333333333333
l = []
while n != 0:
l = [n % 10] + l
n = n // 10
return l
print(timeit.timeit("method()", setup="from __main__ import method", number=10000))
输出:0.37039988200000007
取自此答案的代码
在所有情况下,这map(int, str(num))
是最快的方法(因此可能是最好的方法)。列表理解是第二快的(但使用的方法map(int, str(num))
可能是两者中最可取的。
那些重新发明轮子的东西很有趣,但在实际使用中可能并不那么理想。
最短最好的方法已经回答了,但是我首先想到的是数学方法,所以这里是:
def intlist(n):
q = n
ret = []
while q != 0:
q, r = divmod(q, 10) # Divide by 10, see the remainder
ret.insert(0, r) # The remainder is the first to the right digit
return ret
print intlist(3)
print '-'
print intlist(10)
print '--'
print intlist(137)
这只是另一种有趣的方法,您绝对不必在实际用例中使用这样的东西。
>>>list(map(int, str(number))) #number is a given integer
它返回数字的所有数字的列表。
n = int(raw_input("n= "))
def int_to_list(n):
l = []
while n != 0:
l = [n % 10] + l
n = n // 10
return l
print int_to_list(n)
list
在转换为字符串的数字上使用:
In [1]: [int(x) for x in list(str(123))]
Out[2]: [1, 2, 3]
如果你有一个这样的字符串:'123456',并且你想要一个这样的整数列表:[1,2,3,4,5,6],使用这个:
>>>s = '123456'
>>>list1 = [int(i) for i in list(s)]
>>>print(list1)
[1,2,3,4,5,6]
或者如果你想要一个这样的字符串列表:['1','2','3','4','5','6'],使用这个:
>>>s = '123456'
>>>list1 = list(s)
>>>print(list1)
['1','2','3','4','5','6']
首先转换字符串中的值以对其进行迭代,每个值都可以转换为整数value = 12345
l = [ int(item) for item in str(value) ]
通过循环它可以通过以下方式完成:)
num1= int(input('Enter the number'))
sum1 = num1 #making a alt int to store the value of the orginal so it wont be affected
y = [] #making a list
while True:
if(sum1==0):#checking if the number is not zero so it can break if it is
break
d = sum1%10 #last number of your integer is saved in d
sum1 = int(sum1/10) #integer is now with out the last number ie.4320/10 become 432
y.append(d) # appending the last number in the first place
y.reverse()#as last is in first , reversing the number to orginal form
print(y)
答案变成
Enter the number2342
[2, 3, 4, 2]
num = list(str(100))
index = len(num)
while index > 0:
index -= 1
num[index] = int(num[index])
print(num)
它打印[1, 0, 0]
对象。
num = 123
print(num)
num = list(str(num))
num = [int(i) for i in num]
print(num)
将整数作为输入并将其转换为数字列表。
代码:
num = int(input())
print(list(str(num)))
使用 156789 输出:
>>> ['1', '5', '6', '7', '8', '9']