將integer
轉換爲list
的最快和最乾淨的方法是什麼?將整數轉換爲Python中的列表
例如,將132
改爲[1,3,2]
和23
改爲[2,3]
。我有一個變量,這是一個int
,我希望能夠比較個人數字,所以我認爲把它列入一個列表將是最好的,因爲我可以只做int(number[0])
,int(number[1])
輕鬆地將列表元素轉換回int數字操作。
將integer
轉換爲list
的最快和最乾淨的方法是什麼?將整數轉換爲Python中的列表
例如,將132
改爲[1,3,2]
和23
改爲[2,3]
。我有一個變量,這是一個int
,我希望能夠比較個人數字,所以我認爲把它列入一個列表將是最好的,因爲我可以只做int(number[0])
,int(number[1])
輕鬆地將列表元素轉換回int數字操作。
轉換整數到字符串,然後再使用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]
上轉換成字符串一些
使用list
:
In [1]: list(str(123))
Out[2]: ['1', '2', '3']
爲什麼downvote? – Tim
@Tim:這並沒有給出一個int列表,而是一個字符串列表。 –
最短和最好的辦法是已經回答了,但我想到的第一件事是數學方法,所以在這裏它是:
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.insert(0,item)'是'O(n)'操作。你可以使用'list.append(item)',並在最後反轉列表:'ret [:: - 1]'。 – jfs
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)
請添加說明,而不僅僅是代碼。解釋它的作用。 – MLavrentyev
我想你寫什麼,但你這樣做是沒有返回相同的: >>> NUM = 132 >>>地圖(INT,STR(NUM))在0x1aed510 <地圖對象>(我不知道如何格式化註釋的權利。) – GinKin
@GinKin對於Python 3,你需要'list(map(int,str(num)))''。 –