2011-08-03 23 views
-2

我有一個數字是這樣的:我怎麼可以把號碼列表在python

-1 
1 
2 
3 
-1 
1 
3 
2 

,我想從列表中把這個號碼列表像[-1,1,2,3,-1,1,3,2]和刪除-1

+0

從哪裏得到這些數字?鍵盤輸入,文件,...? –

+0

[從Python列表中刪除所有值的出現]可能的重複(http://stackoverflow.com/questions/1157106/remove-all-occurences-of-a-value-from-a-python-list) – Jacob

+1

爲什麼你要把-1刪除呢? –

回答

1

是否這樣?

>>> a = [-1, 1, 2, 3, -1, 1, 3, 2] 
>>> a = [x for x in a if x != -1] 
>>> a 
[1, 2, 3, 1, 3, 2] 
+0

謝謝,但我怎樣才能把數字放在列表而不是列? – graph

1
In [5]: l = [-1,1,2,3,-1,1,3,2] 

In [6]: l = [item for item in l if item != -1] 

In [7]: l 
Out[7]: [1, 2, 3, 1, 3, 2] 
+0

謝謝,但我怎麼能把數字列表而不是列? – graph

1

這裏是代碼:

In [1]: [int(x) for x in "-1 1 2 3 -1 1 3 2".split() if x!="-1"] 
Out[1]: [1, 2, 3, 1, 3, 2] 
+0

在海報改變輸入數字的格式之前,這段代碼可以正常工作。 –

+0

謝謝,但我怎樣才能把數字放在列表而不是列? – graph

0

剛上AGF的答案小的改進。您不需要擺弄索引來刪除換行符。而是使用strip方法(它也適用於各種線路終端,而不僅僅是Unix'\ n'):

intlist = [int(x.strip()) for x in open(filename) if x.strip() != '-1'] 
+0

謝謝,但我怎樣才能把數字放在列表而不是列? – graph