2017-05-03 140 views
0

空元素,我有這個列表包含一個空元素:Python中刪除由列表

list = ['Caramanico Terme', ' ', 'Castellafiume', ' ', 'Castelvecchio Subequo', ' ', 'Falesia di ovindoli', ' ', 'Fara San Martino', ' ', "L'Aquila - Madonna  d'Appari", ' ', 'La Palma Pazza (Bisegna AQ)', ' ', 'Liscia Palazzo', ' ', 'Luco dei marsi', ' ', 'Montebello di Bertona', ' ', 'Monticchio', ' ', 'Palena', ' ', 'Pennadomo', ' ', 'Pennapiedimonte', ' ', 'Pescomarrino', ' ', 'Petrella', ' ', 'Pianezza', ' ', 'Pietrasecca', ' ', ' ', 'PietrePiane', ' ', 'Pizzi di Lettopalena (loc. Fonte della Noce)', ' ', 'Placche di Bini', ' ', 'Roccamorice', ' ', 'Sasso di Lucoli', ' ', 'Villetta Barrea', ' '] 

我怎麼能消除這種'空元素? 我已經嘗試了這種方式:

[x for x in list if all(x)] 

但的元素是不能刪除 任何幫助嗎? 謝謝

+0

你有沒有看着'Array.pop' 「array.pop([1]) 與索引從數組中移除項目I和返回。可選參數默認爲-1,所以默認情況下最後一項被刪除並返回。「 https://docs.python.org/2/library/array.html – SCramphorn

回答

3

首先。請務必不要打電話給您的名單list。這是一種內置類型,稍後會導致問題。我將它重命名爲lst。然後,您可以過濾列表方式如下:

lst = ['Caramanico Terme', ' ', 'Castellafiume', ' ', 'Castelvecchio Subequo', ' ', 'Falesia di ovindoli', ' ', 'Fara San Martino', ' ', "L'Aquila - Madonna  d'Appari", ' ', 'La Palma Pazza (Bisegna AQ)', ' ', 'Liscia Palazzo', ' ', 'Luco dei marsi', ' ', 'Montebello di Bertona', ' ', 'Monticchio', ' ', 'Palena', ' ', 'Pennadomo', ' ', 'Pennapiedimonte', ' ', 'Pescomarrino', ' ', 'Petrella', ' ', 'Pianezza', ' ', 'Pietrasecca', ' ', ' ', 'PietrePiane', ' ', 'Pizzi di Lettopalena (loc. Fonte della Noce)', ' ', 'Placche di Bini', ' ', 'Roccamorice', ' ', 'Sasso di Lucoli', ' ', 'Villetta Barrea', ' '] 
filtered = [x for x in lst if len(x.strip()) > 0] 

這將消除各種whitepace像' '' '等元素

編輯

由於corn3lius指出,這將工作太:

filtered = [x for x in lst if x.strip()] 
+1

或者你可以這樣做'filtered = [x for x in lst if x.strip()]' – corn3lius

+0

不錯!感謝您的提示! – Flurin

0

你可以在理解列表中添加一個條件:

l = ['Caramanico Terme', ' ', 'Castellafiume', ' ', 'Castelvecchio Subequo', ' ', 'Falesia di ovindoli', ' ', 'Fara San Martino', ' ', "L'Aquila - Madonna  d'Appari", ' ', 'La Palma Pazza (Bisegna AQ)', ' ', 'Liscia Palazzo', ' ', 'Luco dei marsi', ' ', 'Montebello di Bertona', ' ', 'Monticchio', ' ', 'Palena', ' ', 'Pennadomo', ' ', 'Pennapiedimonte', ' ', 'Pescomarrino', ' ', 'Petrella', ' ', 'Pianezza', ' ', 'Pietrasecca', ' ', ' ', 'PietrePiane', ' ', 'Pizzi di Lettopalena (loc. Fonte della Noce)', ' ', 'Placche di Bini', ' ', 'Roccamorice', ' ', 'Sasso di Lucoli', ' ', 'Villetta Barrea', ' '] 

print([l for l in list if l != ' ']) 
0

卸下,並非是「」,即空字符串是一回事構建一組具有從具有長度> 0。這一個襯裏所述第一組的所有元素的所有項目注意到這一護理:

a = ['', 'apple', '', 'peach'] 
b = [i for i in a if i != '']