我从网页(在 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)
关于python - 如果出现,则在分隔符上拆分列表的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255374/