2015-02-24 76 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