2017-04-02 284 views
0

我具有由轉換成字符串的詞典的列表,在該列表中的每個時隙被如下 「{<候選:Candidate1>:1.5}」刪除元素

我想刪除所有非字母數字和 ':' 元素,所以他們看起來像這樣:

'候選人:Candidate1:​​1.5'

我試着做到以下幾點:

for l in list: 
     for l2 in l: 
       if l2.isalnum()==False or l2==':': 
         l2.replace("") 

但是我沒有得到想要的結果,我該怎麼做?

在此先感謝

回答

1

考慮:

>>> [re.sub(r'[^\w\d.]+',"",e) for e in li] 
['1.5', '1.6'] 

編輯

如果你想保留:

>>> li=[ '{: 1.5}', '{: 1.6}'] 

您可以通過元素的正則表達式使用元素:你可以這樣做:

>>> [re.sub(r'[^\w\d.:]+',"",e) for e in li] 
[':1.5', ':1.6'] 
+0

我明白了,但我不想消除「:」,這個正則表達式需要添加還是消除? –

+0

'[^ \ w \ d。] +'裏面的項是被保存的東西,任何不是'\ w'(a-zA-Z_)'\ d'(0-9)正在被淘汰。把任何你想保留在括號內。如果你想在'[^ \ w \ d。] +'裏面保留':'add。 – dawg