2015-02-24 84 views
2

我對python很陌生,並且有一個關於處理帶有列表作爲結果的列表的問題。 例如:處理列表並輸出爲列表

list1 = ["vbhg12vbdf42vbsdh24", "dbsh13vdsj24lvk48"] #must become [['12','42','24'], ['13','24','48']] 
list2 = (re.findall("\d+", str(list1))) # gives ['12', '42', '24', '13', '24', '48'] 

查看評論。任何想法我怎麼能做到這一點?

非常感謝。

回答

3

所有你需要指定你的模式是一個正則表達式與您findall()功能首先在開始添加r那麼你需要遍歷你的列表並在其元素上應用函數,你可以使用列表理解:

>>> list1 = ["vbhg12vbdf42vbsdh24", "dbsh13vdsj24lvk48"] 
>>> import re 
>>> [re.findall(r'\d+',i) for i in list1] 
[['12', '42', '24'], ['13', '24', '48']] 
3

如何:

result = [] 

for x in list1: 
    result.append(re.findall("\d+", x)) 

,或作爲列表理解:

result = [re.findall("\d+", x) for x in list1] 
+0

正是我想到的 – taesu 2015-02-24 19:31:35