我对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']
见评论。知道我怎么能这样做吗?
非常感谢。
答案 0 :(得分:3)
怎么样:
result = []
for x in list1:
result.append(re.findall("\d+", x))
或者,作为列表理解:
result = [re.findall("\d+", x) for x in list1]
答案 1 :(得分:3)
首先,您需要指定您的模式是findall()
函数中的正则表达式,并在模式的开头添加r
,然后您需要遍历列表并应用函数它的元素,你可以使用列表理解:
>>> list1 = ["vbhg12vbdf42vbsdh24", "dbsh13vdsj24lvk48"]
>>> import re
>>> [re.findall(r'\d+',i) for i in list1]
[['12', '42', '24'], ['13', '24', '48']]