Skip to main content
 首页 » 编程设计

python之如果出现,则在分隔符上拆分列表的字符串

2025年05月04日35rubylouvre

我从网页(在 codecademy.com 的一个项目中)获取 HTML 代码。 提取结果是一个文本。我把它分成了一个列表。

问题:某些结果包含 Unicode 字符,我想从它们出现的字符串中删除这些字符。

['Normal String', 'Company\xc2\xae', 'againnormal', '\xc2\xb7'] 

结果应该是这样的:

['Normal String', 'Company', 'againnormal', ''] 

或者理想情况下是这样的

['Normal String', 'Company', 'againnormal'] 

请您参考如下方法:

怎么样

>>> stuff = ['Normal String', 'Company\xc2\xae', 'againnormal', '\xc2\xb7'] 
>>> filter(None, [x.decode('utf8').encode('ascii', 'ignore') for x in stuff]) 
['Normal String', 'Company', 'againnormal'] 

或者使用正则表达式

>>> import re 
>>> filter(None, [re.sub(r'[^\x00-\x7F]+', '', x) for x in stuff]) 
['Normal String', 'Company', 'againnormal'] 

没有列表理解:

keep = [] 
for item in stuff: 
    item = item.decode('utf8').encode('ascii', 'ignore') 
    if item: 
        keep.append(item)