从python中的列表元素中删除字符

时间:2018-11-26 17:40:21

标签: python regex

我正在借助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:']

2 个答案:

答案 0 :(得分:3)

您可以使用list comprehension解决此问题:

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

答案 1 :(得分:1)

我认为为此引入regex有点矫kill过正:使用字符串replace方法:

v = ['Marke:', 'Modell:']
v = [str.replace(':', '') for str in v]
print(v)

输出:

['Marke', 'Modell']