我有一个像这样的列表。我可以使用python从列表中删除 \ xe2 \ x80 \ x99,\ xe2 \ x80 \ x9c等。无论如何要从我的列表中消除这些数据? 常见模式是可用的吗?
[' guest',' demo',':',' eric',' iverson', ' \ xe2 \ x80 \ x99s',' itty', ' bitty',' search',' february',' 16',' th',', ',' 2010',' by', ' daniel',' tunkelang','回复',' i',' \ xe2 \ x80 \ x99m', '背面&#39 ;, '来自','度假',',','和','仍然','挖掘','我的''方式', ' out','','所有','',' \ xe2 \ x80 \ x99s', '堆积',' up', '而',' i',' \ xe2 \ x80 \ x99ve','已经','离线', '而',' i', ' catch',' up',',','我','思考','我',' \ xe2 \ x80 \ x99d','分享', '',',' a',' demo','',' eric& #39;,' iverson','是', '亲切','足够','','分享','与',' me& #39;,'它','使用', ' yahoo','!',' boss',' to','支持',' ','探索','搜索', '体验',''' top',''' a''' general& #39;,'网络','搜索', '引擎','当','你','执行',' a','查询& #39;,',','', '应用','检索''','设置''',''' && 39; #39;,' term', '考生','使用',' yahoo',' \ xe2 \ x80 \ x99s',' key', '术语&#39 ;, ' api','它','然后','得分','每个'' term& #39;,'通过','划分','它', '''''''''''''''''结果& #39;,'设置',' by', '''''全球''''''''''' \ XE2 \ X80 \ x93a&#39 ;, '相关性','衡量','类似','到','一个','我的& #39;,'前', '同事''和','我',''' at',' endeca& #39;,' in',' enterprise', '上下文','你','''尝试''''& #39;,'演示','你自己', ' at',' http',':// www',' ittybittysearch',' com',&# 39; /','而',' it', ''' rough',' edge',',',' it','产生',' nice','结果', ' \ xe2 \ x80 \ x93特别','考虑',''简单''', '''',' here',' \ xe2 \ x80 \ x99s',' an', '示例',' of', '','我''''''''''& #39;,'探索','和', '学习',''' new','我','开始','& #39;,' ["', '信息','检索''"]','我','注意到', ' \ XE2 \ X80 \ x9c&#39 ;, '互动','信息','检索' \#39; \ xe2 \ x80 \ x9d',' as', '一个&#39 ;, ' top',' term',',',' so',' i','使用','它',',','精简','大多数', '''''''''''''看起来','熟悉& #39;,'到', '我',' \ xe2 \ x80 \ x93但','','陌生','名称', '抓住了','我的', '关注',',' \ xe2 \ x80 \ x9c',' anton',' leuski' ,' \ xe2 \ x80 \ x9d', '关注','我的','好奇心',',','我','精致','再次', '查看',''''''''''''我立刻'立即''看到', '',' leuski','','完成','工作',' on& #39;,'评估', '记录','群集','对于','互动','信息', '检索','进一步','探索''制作','它''清除& #39;,'这个', '是','某人','他们的工作''我''应该& #39;,' get',' to',' know', ' \ xe2 \ x80 \ x93check',' out','他的',' home',' page', '!','我','可以', ' \ xe2 \ x80 \ x99t','承诺','那','你'' \ xe2 \ x80 \ x99ll','有', ' as','生产','''体验''''' i& #39;,'做了',',','但是', '我','鼓励',','到','尝试'' eric& #39;,' \ xe2 \ x80 \ x99s',' demo', '它'' \ xe2 \ x80 \ x99s','简单','示例','喜欢', '这些','那', '提醒','','''''''& #39;,'追求',' hcir',' for', '','打开''网络','说','','& #39;,',',' hcir',' 2010', '''''''''''''我们'' \ xe2 \ x80 \ x99ll','肉体',' out', '''详情',' over',''''''周& ',',','和',' of', '当然',' i',' \ xe2 \ x80 \ x99ll','分享','他们', '这里']
答案 0 :(得分:3)
如果我猜测输入是utf8编码,你可以这样做:
>>> from unidecode import unidecode
>>> my_list = ['guest', 'demo', ':', 'eric', 'iverson', '\xe2\x80\x99s', 'itty', 'bitty', 'search', 'february', '16', 'th', ',', '2010', 'by', 'daniel', 'tunkelang', 'respond', 'i', '\xe2\x80\x99m', 'back', 'from', 'vacation', ',', 'and', 'still', 'digging', 'my', 'way', 'out', 'of', 'everything', 'that', '\xe2\x80\x99s', 'piled', 'up', 'while', 'i', '\xe2\x80\x99ve', 'been', 'offline', 'while', 'i', 'catch', 'up', ',', 'i', 'thought', 'i', '\xe2\x80\x99d', 'share', 'with', 'you', 'a', 'demo', 'that', 'eric', 'iverson', 'was', 'gracious', 'enough', 'to', 'share', 'with', 'me', 'it', 'uses', 'yahoo', '!', 'boss', 'to', 'support', 'an', 'exploratory', 'search', 'experience', 'on', 'top', 'of', 'a', 'general', 'web', 'search', 'engine', 'when', 'you', 'perform', 'a', 'query', ',', 'the', 'application', 'retrieves', 'a', 'set', 'of', 'related', 'term', 'candidates', 'using', 'yahoo', '\xe2\x80\x99s', 'key', 'terms', 'api', 'it', 'then', 'scores', 'each', 'term', 'by', 'dividing', 'it', 'is', 'occurrence', 'count', 'within', 'the', 'result', 'set', 'by', 'it', 'is', 'global', 'occurrence', 'count', '\xe2\x80\x93a', 'relevance', 'measure', 'similar', 'to', 'one', 'my', 'former', 'colleagues', 'and', 'i', 'used', 'at', 'endeca', 'in', 'enterprise', 'contexts', 'you', 'can', 'try', 'out', 'the', 'demo', 'yourself', 'at', 'http', '://www', 'ittybittysearch', 'com', '/', 'while', 'it', 'has', 'rough', 'edges', ',', 'it', 'produces', 'nice', 'results', '\xe2\x80\x93especially', 'considering', 'the', 'simplicity', 'of', 'the', 'approach', 'here', '\xe2\x80\x99s', 'an', 'example', 'of', 'how', 'i', 'used', 'the', 'application', 'to', 'explore', 'and', 'learn', 'something', 'new', 'i', 'started', 'with', '["', 'information', 'retrieval', '"]', 'i', 'noticed', '\xe2\x80\x9c', 'interactive', 'information', 'retrieval', '\xe2\x80\x9d', 'as', 'a', 'top', 'term', ',', 'so', 'i', 'used', 'it', 'to', 'refine', 'most', 'of', 'the', 'refinement', 'suggestions', 'looked', 'familiar', 'to', 'me', '\xe2\x80\x93but', 'an', 'unfamiliar', 'name', 'caught', 'my', 'attention', ':', '\xe2\x80\x9c', 'anton', 'leuski', '\xe2\x80\x9d', 'following', 'my', 'curiosity', ',', 'i', 'refined', 'again', 'looking', 'at', 'the', 'results', ',', 'i', 'immediately', 'saw', 'that', 'leuski', 'had', 'done', 'work', 'on', 'evaluating', 'document', 'clustering', 'for', 'interactive', 'information', 'retrieval', 'further', 'exploration', 'made', 'it', 'clear', 'this', 'is', 'someone', 'whose', 'work', 'i', 'should', 'get', 'to', 'know', '\xe2\x80\x93check', 'out', 'his', 'home', 'page', '!', 'i', 'can', '\xe2\x80\x99t', 'promise', 'that', 'you', '\xe2\x80\x99ll', 'have', 'as', 'productive', 'an', 'experience', 'as', 'i', 'did', ',', 'but', 'i', 'encourage', 'you', 'to', 'try', 'eric', '\xe2\x80\x99s', 'demo', 'it', '\xe2\x80\x99s', 'simple', 'examples', 'like', 'these', 'that', 'remind', 'me', 'of', 'the', 'value', 'of', 'pursuing', 'hcir', 'for', 'the', 'open', 'web', 'speaking', 'of', 'which', ',', 'hcir', '2010', 'is', 'in', 'the', 'works', 'we', '\xe2\x80\x99ll', 'flesh', 'out', 'the', 'details', 'over', 'the', 'next', 'weeks', ',', 'and', 'of', 'course', 'i', '\xe2\x80\x99ll', 'share', 'them', 'here']
>>> my_clean_list = [unidecode(x.decode('utf8')) for x in my_list]
>>> my_clean_list
['guest', 'demo', ':', 'eric', 'iverson', "'s", 'itty', 'bitty', 'search', 'february', '16', 'th', ',', '2010', 'by', 'daniel', 'tunkelang', 'respond', 'i', "'m", 'back', 'from', 'vacation', ',', 'and', 'still', 'digging', 'my', 'way', 'out', 'of', 'everything', 'that', "'s", 'piled', 'up', 'while', 'i', "'ve", 'been', 'offline', 'while', 'i', 'catch', 'up', ',', 'i', 'thought', 'i', "'d", 'share', 'with', 'you', 'a', 'demo', 'that', 'eric', 'iverson', 'was', 'gracious', 'enough', 'to', 'share', 'with', 'me', 'it', 'uses', 'yahoo', '!', 'boss', 'to', 'support', 'an', 'exploratory', 'search', 'experience', 'on', 'top', 'of', 'a', 'general', 'web', 'search', 'engine', 'when', 'you', 'perform', 'a', 'query', ',', 'the', 'application', 'retrieves', 'a', 'set', 'of', 'related', 'term', 'candidates', 'using', 'yahoo', "'s", 'key', 'terms', 'api', 'it', 'then', 'scores', 'each', 'term', 'by', 'dividing', 'it', 'is', 'occurrence', 'count', 'within', 'the', 'result', 'set', 'by', 'it', 'is', 'global', 'occurrence', 'count', '-a', 'relevance', 'measure', 'similar', 'to', 'one', 'my', 'former', 'colleagues', 'and', 'i', 'used', 'at', 'endeca', 'in', 'enterprise', 'contexts', 'you', 'can', 'try', 'out', 'the', 'demo', 'yourself', 'at', 'http', '://www', 'ittybittysearch', 'com', '/', 'while', 'it', 'has', 'rough', 'edges', ',', 'it', 'produces', 'nice', 'results', '-especially', 'considering', 'the', 'simplicity', 'of', 'the', 'approach', 'here', "'s", 'an', 'example', 'of', 'how', 'i', 'used', 'the', 'application', 'to', 'explore', 'and', 'learn', 'something', 'new', 'i', 'started', 'with', '["', 'information', 'retrieval', '"]', 'i', 'noticed', '"', 'interactive', 'information', 'retrieval', '"', 'as', 'a', 'top', 'term', ',', 'so', 'i', 'used', 'it', 'to', 'refine', 'most', 'of', 'the', 'refinement', 'suggestions', 'looked', 'familiar', 'to', 'me', '-but', 'an', 'unfamiliar', 'name', 'caught', 'my', 'attention', ':', '"', 'anton', 'leuski', '"', 'following', 'my', 'curiosity', ',', 'i', 'refined', 'again', 'looking', 'at', 'the', 'results', ',', 'i', 'immediately', 'saw', 'that', 'leuski', 'had', 'done', 'work', 'on', 'evaluating', 'document', 'clustering', 'for', 'interactive', 'information', 'retrieval', 'further', 'exploration', 'made', 'it', 'clear', 'this', 'is', 'someone', 'whose', 'work', 'i', 'should', 'get', 'to', 'know', '-check', 'out', 'his', 'home', 'page', '!', 'i', 'can', "'t", 'promise', 'that', 'you', "'ll", 'have', 'as', 'productive', 'an', 'experience', 'as', 'i', 'did', ',', 'but', 'i', 'encourage', 'you', 'to', 'try', 'eric', "'s", 'demo', 'it', "'s", 'simple', 'examples', 'like', 'these', 'that', 'remind', 'me', 'of', 'the', 'value', 'of', 'pursuing', 'hcir', 'for', 'the', 'open', 'web', 'speaking', 'of', 'which', ',', 'hcir', '2010', 'is', 'in', 'the', 'works', 'we', "'ll", 'flesh', 'out', 'the', 'details', 'over', 'the', 'next', 'weeks', ',', 'and', 'of', 'course', 'i', "'ll", 'share', 'them', 'here']
我在这里使用unidecode模块来转换那些"幻想"字符到最近的ascii等价物:
>>> for before, after in zip(my_list, my_clean_list):
... if before != after:
... print before, ' --> ', after
...
’s --> 's
’m --> 'm
’s --> 's
’ve --> 've
’d --> 'd
’s --> 's
–a --> -a
–especially --> -especially
’s --> 's
“ --> "
” --> "
–but --> -but
“ --> "
” --> "
–check --> -check
’t --> 't
’ll --> 'll
’s --> 's
’s --> 's
’ll --> 'll
’ll --> 'll
正如你可能猜到的那样,看起来有些英文数据应该在字边界处被分割,这是错误的。如果是您的代码生成此数据,我建议您更接近问题的来源解决您的问题!
答案 1 :(得分:1)
看起来你想要消除一堆unicode字符串。只需在列表中选择字母数字字符,如下所示:
>>> filter( lambda m: m.isalnum() ,p)
这应该消除unicode的东西......
另一种选择是直接对字符串进行编码和解码......
>>> ' '.join(p).decode('ascii', 'ignore').encode('ascii').split()
这应该做得更好......
答案 2 :(得分:0)
您可以使用列表理解。假设您只想完全删除包含非字母数字字符的列表元素。如果您的列表位于变量a
:
[x for x in a if x.isalnum()]
将返回列表,减去\xe2\x80\x99
等元素
这是@ssm提到的equivalent to the filter solution,他们刚刚首先使用它。