首页 > 解决方案 > 从python中的列表元素中删除字符

问题描述

我在scrapy的帮助下将内容提取到一个数组中。每个元素都有不需要的字符“:”,我想尽可能有效地删除其中的字符。

v = response.xpath('//div[@id="tab"]/text()').extract()
>>> v
['Marke:', 'Modell:']
>>> for i in v : re.sub(r'[^\w]', '', i)
... 
'Marke'
'Modell'

现在这似乎可行,但我怎样才能保留结果?在我的代码中,v没有改变:

>>> v
['Marke:', 'Modell:']

标签: pythonregex

解决方案


您可以通过列表理解来解决此问题:

>>> v = response.xpath('//div[@id="tab"]/text()').extract()
>>>
>>> import re
>>> v = [re.sub(r'[^\w]', '', i) for i in v]
>>> v
['Marke', 'Modell']

推荐阅读