2016-10-27 32 views
0

我有一個輸入:從無序串取號碼,並將其轉換爲一個列表用逗號分隔每個號碼

L1 = input() 

我所要的輸出是:

[1, 7, -3, 10, 42, 5, 0, 17] 

輸入是 「1 7 -3 10 42 5 0 17」,這意味着當我打印L1,它產生:

1 7 -3 10 42 5 0 17 

使用INP(輸入())給我「無效字面對於基數爲10的int():「。 使用.split不會更改輸出。

如果我得到了用戶輸入的列表,然後它產生:

[1 7 -3 10 42 5 0 17] 

的數字串不能單獨輸入,則必須輸入作爲一個整體,然後選擇「分裂」用逗號。然而;

L1 = input() 
L1.split() or L1.split(",") 
print(L1) 

剛剛得到...

1 7 -3 10 42 5 0 17 

回答

0

爲了L1到正確更新,你必須爲它分配值L1.split()返回。

L1 = "1 7 -3 10" 
L1 = L1.split() 
print(L1) 

輸出: ['1', '7', '-3', '10']

或者,如果你想要一個整數列表:

L1 = "1 7 -3 10" 
L1 = [int(i) for i in L1.split()] 
print(L1) 

輸出: [1, 7, -3, 10]

+0

謝謝您的回答,這是我需要的。 –

+0

沒問題,如果它按照你計劃的方式計算出來,可以隨意標記爲已解決:) – Carl

0

如果您想通過空間分割或逗號,你的肩膀d使用正則表達式分割。另外,拆分項目類型爲str,您可能希望將它們轉換爲int

下面的代碼:

import re 
L1 = input() 
L1 = [int(i) for i in re.split('[\s,]+', L1) if i] 
print(L1) 
相關問題