处理列表并输出为列表
问题描述:
我对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']
查看评论。任何想法我怎么能做到这一点?
非常感谢。
答
所有你需要指定你的模式是一个正则表达式与您findall()
功能首先在开始添加r
那么你需要遍历你的列表并在其元素上应用函数,你可以使用列表理解:
>>> list1 = ["vbhg12vbdf42vbsdh24", "dbsh13vdsj24lvk48"]
>>> import re
>>> [re.findall(r'\d+',i) for i in list1]
[['12', '42', '24'], ['13', '24', '48']]
答
如何:
result = []
for x in list1:
result.append(re.findall("\d+", x))
,或作为列表理解:
result = [re.findall("\d+", x) for x in list1]
正是我想到的 – taesu 2015-02-24 19:31:35