2017-07-13 121 views
0

得到空元素我試過代碼來獲得這樣的一個字符串的數字:「some_name [數字]」Python的分裂與一些分隔符和不列表

name= "asdf[105]" 
re.split("\[|\]", name) 

,我得到該列表。

['asdf', '105', ''] 

任何人都知道如何得到一個沒有空元素的列表? 有沒有一種方法可以在不刪除列表中的空白元素後?

+6

[Python的正則表達式分裂的可能的複製,而不空字符串](https://stackoverflow.com/questions/16840851/python-regex-split-without-empty-string) – idjaw

+0

嘿,謝謝你,並抱歉重複一個問題。我認爲簡單的解決方案是擺脫空的元素。 'name = filter(None,name)' – akerbeltz

回答

0

您可以使用列表理解。

l = ['asdf', '105', ''] 
l = [element for element in l if element != ''] 

所以,你的代碼將

import re 

name = "asdf[105]" 
l = [element for element in re.split("\[|\]", name) if element != ''] 
print(l) # ['asdf', '105'] 

或者,如果你想繼續列表與空元素,

import re 

name = "asdf[105]" 
list_with_empty_elements = re.split("\[|\]", name) 
list_without_empty_elements = [element for element in list_with_empty_elements if element != ''] 
+0

他說「沒有刪除列表中的空白元素」 –

+0

從技術上講,這不是_deleting_元素。 – erip

+0

但是你正在擺脫空的元素 –