2016-03-08 87 views

回答

2

由於您的第一個列表只包含一個字符串,您可以使用split()函數。

splitShips = ship_sizes[0].split() 

newShips = [int(ship) for ship in splitShips] 
+0

嘗試輸入第一個函數後,出現錯誤「TypeError:無法將列表'對象隱式轉換爲str' – Vlad

+0

您使用的是什麼python版本?該代碼適用於Python 2.7.9 – Maecky

+2

另外,沒有參數的'split()'在空白處分裂。 ''1 2 3 \ n'.split()'返回'['1','2','3']'。 –

4

您可以使用下列內容:

In [11]: map(int, ship_sizes[0].split()) 
Out[11]: [1, 1, 2, 1, 1] 

指數0允許您訪問字符串'1 1 2 1 1'split()函數然後將該字符串轉換爲['1', '1', '2', '1', '1'],這是一個字符串列表。最後,使用map和函數int將列表中的每個字符串轉換爲一個整數。

+0

對不起,在[11]之後冒號出現語法錯誤.. – Vlad

+0

這是我使用控制檯!你之前使用過控制檯嗎?如果沒有,請忽略'In [11]:''和'Out [11]:' - 它們不是代碼的一部分 – gtlambert

+0

在我放入map(int,ship_sizes [0] .split())後,我得到 <地圖對象在0x7f6c42951588> 但沒有輸出? – Vlad

1

下面的代碼也應該可以工作。

ship_sizes = ['1 1 2 1 1'] 
strVariable = ship_sizes[0].split(' ') 
resultArray = [] 

i = 0 
for i in range(len(strVariable)): 
    resultArray.append(int(strVariable[i])) 

print(resultArray) 
相關問題