2013-09-01 79 views
-1

我的程序要求用戶輸入10個隨機數我正在使用此代碼。我不能使用map函數將列表更改爲int Python

numbers = input("Type 10 numbers, separeted by spaces: ") 
numberlist = list(numbers) 
numberlist = map(int,numberlist) 
print(numberlist) 

但是當程序正在編譯時,我可以鍵入10個數字,但我在shell中得到這個消息。

<map object at 0xb51a11cc> 

任何人都知道什麼是解決方案?我在ubuntu 13.04中使用python 3.3。

謝謝。

+3

'list(map(int,numberlist))',使用'list()'。注意'list(numbers)'不會做你認爲它會做的事情,使用:'numbers.split()'。 –

回答

4

map在Python 3.x中返回一個地圖對象,而不是Python 2.x中的列表。爲了解決這個問題,把地圖對象列表中的任一位置:

numberlist = list(map(int,numberlist)) 

或在這裏:

print(list(numberlist)) 

演示:

>>> lis = ['1', '2', '3'] 
>>> map(int, lis) 
<map object at 0x01DE0F70> 
>>> list(map(int, lis)) 
[1, 2, 3] 
>>> 

而且,你會想要做的下面所以它的作品(現在它將嘗試使所有的空間成爲整數,這將炸燬):

numbers = input("Type 10 numbers, separated by spaces: ").split()