2017-04-03 85 views
0

問題:我需要將一個整數數組作爲輸入。提取每個整數並將其存儲在單獨的數組中。在一行中避免空格的數組輸入輸入

我的代碼至今

x = [] 
    y = [] 
    x = list(map(int,input())) 
    for i in range (len(x)): 
     y[i] = x[i] 

我也嘗試了替換功能,但我無法從一個單一的數字整數標識2或3位整數。實際上,它將100作爲1,0,0存儲在[0],a [1]和[2]中,但我需要100作爲[0]中的單個數字。 我需要一個清楚的概念來說明這是如何工作的!有人可以幫我嗎?

+0

您希望輸入的格式是什麼? –

+0

'x = list(map(int,input()))'應該沒問題。其餘的不清楚。 –

+0

@DanielRoseman輸入的格式應該是:1 2 3 4 10 11 –

回答

0

由於整數將被空格分隔,所以應該使用.split(' ')

x = list(map(int, input().split(' '))) 

其餘的代碼似乎毫無意義;這一行就足夠了。

0

你可以做這樣的事情上python3:

x = list(map(int, input().split())) 
y = list(x) # will create list y similar to x 
print(y) 

對於python2,您可以使用raw_input要做到這一點,是這樣的:

x = list(map(int, str(raw_input()).split())) 
y = list(x) # will create list y similar to x 
print(y) 

對於輸入100 200,其結果將是:

[100, 200] 
+0

'y = x'不會創建類似於'x'的列表;它爲'x'創建一個別名。如果你想創建一個新列表,使用'x [:]' – zondo

+0

這是正確的。參考將被創建。將編輯。 –

0

功能.split()接收一個字符串並返回它的單詞列表。您可以指定單詞的分隔符並使用.split(' '),以便Python知道您輸入的數字是由空格分隔的。

例如:

x = list(map(int, input().split(' '))) 
print(x) 

如果您運行此命令,輸入線:

10 8 5 

你會得到的結果:

[10, 8, 5] 

另外,如果你想數字的總和,就像你說的那樣,使用函數sum(),它將列表的所有元素相加。這是您需要的程序:

x = sum(list(map(int, input().split(' ')))) 
+0

.split不需要參數;默認情況下它會分割空白。 sum()不需要它的參數就是一個列表。地圖對象正常工作。 – zondo