我从网页(在codecademy.com的项目中)获取HTML代码。 提取导致文本。我分成了一个列表。
问题:某些结果包含Unicode字符,我想从它们出现的字符串中删除。
['Normal String', 'Company\xc2\xae', 'againnormal', '\xc2\xb7']
结果应如下所示:
['Normal String', 'Company', 'againnormal', '']
或者理想情况下喜欢这个
['Normal String', 'Company', 'againnormal']
答案 0 :(得分:5)
怎么样
>>> 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)