如果分隔符出现在

时间:2016-10-26 06:41:43

标签: python list loops unicode

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

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

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

结果应如下所示:

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

或者理想情况下喜欢这个

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

1 个答案:

答案 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)